1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 typedef vector<int> INTVECTOR;//自定义类型INTVECTOR 5 //测试vector容器的功能 6 int main() 7 { 8 //vec1对象初始为空 9 INTVECTOR vec1; 10 //vec2对象最初有10个值为6的元素 11 INTVECTOR vec2(10,6); 12 //vec3对象最初有3个值为6的元素,拷贝构造 13 INTVECTOR vec3(vec2.begin(),vec2.begin()+3); 14 //声明一个名为i的双向迭代器 15 INTVECTOR::iterator i; 16 //从前向后显示vec1中的数据 17 cout<<"vec1.begin()--vec1.end():"<<endl; 18 for (i =vec1.begin(); i !=vec1.end(); ++i) 19 cout << *i << " "; 20 cout << endl; 21 //从前向后显示vec2中的数据 22 cout<<"vec2.begin()--vec2.end():"<<endl; 23 for (i =vec2.begin(); i !=vec2.end(); ++i) 24 cout << *i << " "; 25 cout << endl; 26 cout<<"vec2.begin()--vec2.end():"<<endl; 27 28 //从前向后显示vec3中的数据 29 cout<<"vec3.begin()--vec3.end():"<<endl; 30 for (i =vec3.begin(); i !=vec3.end(); ++i) 31 cout << *i << " "; 32 cout << endl; 33 //测试添加和插入成员函数,vector不支持从前插入 34 vec1.push_back(2);//从后面添加一个成员 35 vec1.push_back(4); 36 vec1.insert(vec1.begin()+1,5);//在vec1第一个的位置上插入成员5 37 //从vec1第一的位置开始插入vec3的所有成员 38 vec1.insert(vec1.begin()+1,vec3.begin(),vec3.end()); 39 cout<<"after push() and insert() now the vec1 is:" <<endl; 40 for (i =vec1.begin(); i !=vec1.end(); ++i) 41 cout << *i << " "; 42 cout << endl; 43 cout<<"reverse vec1:"<<endl; 44 INTVECTOR::reverse_iterator it; 45 for (it=vec1.rbegin(); it!=vec1.rend(); ++it) 46 cout << *it << " "; 47 cout << endl; 48 //测试赋值成员函数 49 vec2.assign(8,1); // 重新给vec2赋值,8个成员的初始值都为1 50 cout<<"vec2.assign(8,1):" <<endl; 51 for (i =vec2.begin(); i !=vec2.end(); ++i) 52 cout << *i << " "; 53 cout << endl; 54 //测试引用类函数 55 cout<<"vec1.front()="<<vec1.front()<<endl;//vec1第零个成员 56 cout<<"vec1.back()="<<vec1.back()<<endl;//vec1的最后一个成员 57 cout<<"vec1.at(4)="<<vec1.at(4)<<endl; //vec1的第五个数,即数组下标为4的元素 58 cout<<"vec1[4]="<<vec1[4]<<endl;//同上。59 //测试移出和删除 60 vec1.pop_back();//将最后一个成员移出vec1 61 vec1.erase(vec1.begin()+1,vec1.end()-2);//删除成员 62 cout<<"vec1.pop_back() and vec1.erase():" <<endl; 63 for (i =vec1.begin(); i !=vec1.end(); ++i) 64 cout << *i << " "; 65 cout << endl; 66 //显示序列的状态信息 67 cout<<"vec1.size(): "<<vec1.size()<<endl;//打印成员个数 68 cout<<"vec1.empty(): "<<vec1.empty()<<endl; 69 vec1.clear(); 70 cout<<vec1.empty(); 71 cout<<vec1.size(); 72 }