zl程序教程

您现在的位置是:首页 >  其他

当前栏目

STL---vector

2023-03-14 10:17:06 时间
 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 }