一、线性表vector
/*test.cpp*/
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> array(10);
cout<<"array sizez: "<<array.size()<<endl;
for (int i=0; i<5; i++)
{
array[i] = i + 1;
}
for (int i=0; i<array.size(); i++)
{
cout<<array[i]<<endl;
}
array.resize(5);
for (int i=0; i<array.size(); i++)
{
cout<<array[i]<<endl;
}
vector<int> array1;
array1 = array;
array.resize(0);
for (int i=0; i<array1.size(); i++)
{
cout<<array1[i]<<endl;
}
cout<<"array sizez: "<<array.size()<<endl;
return 0;
}
二、栈和队列(stack & queue)
/*test.cpp*/
#include <iostream>
#include <stack>
#include <queue>
using namespace std;
void StackUsage()
{
cout<<"StackUsage"<<endl;
stack<double> s;
for (int i=0; i<5; i++)
{
s.push(i/100.0);
}
while(!s.empty())
{
double temp = s.top();
s.pop();
cout<<temp<<endl;
}
}
void QueueUsage()
{
cout<<"QueueUsage"<<endl;
queue<int> q;
for (int i=0; i<5; i++)
{
q.push(i);
}
while(!q.empty())
{
double temp = q.front();
q.pop();
cout<<temp<<endl;
}
}
int main()
{
StackUsage();
QueueUsage();
return 0;
}
三、链表和迭代器(list & iterator)
/*test.cpp*/
#include <iostream>
#include <list>
#include <iterator>
using namespace std;
int main()
{
list<double> l;
cout<<"list size: "<<l.size()<<endl;
for (int i=0; i<5; i++)
{
l.push_back((i+1)/100.0);
}
list<double>::iterator p = l.begin();
while(p != l.end())
{
cout<<*p<<endl;
p++;
}
p = l.begin();
l.insert(p, 0.1);
cout<<"********************"<<endl;
for (list<double>::iterator q = l.begin(); q!=l.end(); q++)
{
cout<<*q<<endl;
}
return 0;
}
四、算法(algorithm)
/*test.cpp*/
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void current(int &v)
{
cout<<v<<endl;
}
void print(vector<int> &vec)
{
cout<<"print element"<<endl;
for_each(vec.begin(), vec.end(), current);//回调函数
}
int compare(const int &a, const int &b)
{
return a < b;
}
int main()
{
vector<int> v(10);
for (int i=10; i>0; i--)
{
v[i-1] = 10-i;
}
print(v);
int c = compare(1 ,3);
cout<<"c: "<<c<<endl;
sort(v.begin(), v.end(), compare);//回调函数
print(v);
return 0;
}