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 }
相关文章
- Spring源码 – bean创建的生命周期之实例化-createBeanInstance(Spring Framework 5.3.7-SNAPSHO)
- 为什么香港主机还要备案域名
- 在启用.co域名几个月后,我们还是选择升级为.com域名。
- cn域名香港主机用不用备案吗
- 用户:TrueName指纹域名是搜索引擎排名的关键
- 香港主机的域名需要备案吗
- Donuts8月域名趋势报告,.Live域名拔得头筹
- 第一次如何快速了解服务器
- 香港主机可以绑多少域名
- 香港域名一年多少钱
- 虚拟服务器可以绑定多少个域名
- 学生购买域名要多少钱
- 使用ecs搭建blog项目
- 怎么导入文件到云服务器
- 阿里云七天试用体验
- 云服务器怎么加个d盘
- SEO没有秘籍,不要期待会有一劳永逸的方法
- Vi和Vim的关系
- 声母是什么意思
- SEO流程及计划是一个很重要的基本工作