STL库vector的使用
来源:互联网 发布:淘宝开店身份证泄露 编辑:程序博客网 时间:2024/05/11 02:02
#include<vector>#include<algorithm>#include<iterator>#include<functional>#include<iostream>using namespace std;struct print{ void operator()(int n) { cout<<n<<' '; }};int main(){ //输出的三种方式 int a[10] = {1,2,3,4,5,6,7,8,9,10}; vector<int> vt(a, a+10); cout<<"out1: "; for_each(vt.begin(), vt.end(), print()); cout<<endl; cout<<"out2:(无越界检查) "; for(int i=0; i<vt.size(); ++i) cout<<vt[i]<<' '; cout<<endl; cout<<"out3:(有越界检查) "; for(int i=0; i<vt.size(); ++i) cout<<vt.at(i)<<' '; cout<<endl; //assign赋值 vector<int> va; va.assign(5, 0); for_each(va.begin(), va.end(), print()); cout<<endl; va.assign(vt.begin(), vt.end()); for_each(va.begin(), va.end()-5, print()); cout<<endl; //back返回一个引用,它指向序列中最后一个元素,该序列不能为空 cout<<vt.back()<<endl; //capacity cout<<vt.capacity()<<endl; //cbegin其实这个和begin差不多,只是具有了const属性,不能用于修改元素而已 vector<int>::const_iterator iter, iter1; iter = vt.cbegin(); cout<<*iter<<endl; iter = vt.cend();//end指向最后一个元素的下一个元素 cout<<*(iter-1)<<endl; //clear调用的是erase函数 vt.clear(); for_each(vt.begin(), vt.end(), print()); //rbegin返回一个逆序迭代器,它指向容器c的最后一个元素 vector<int>::reverse_iterator it; it = va.rbegin(); cout<<*it<<endl; //crbegin该函数返回一个具有const属性的reverse_iterator,指向该容器的最后一个元素 for_each(va.begin(), va.end(), print()); cout<<endl; vector<int>::const_reverse_iterator it1; cout<<endl; it1 = va.crbegin(); cout<<"测试"; for_each(va.begin(), va.end(), print()); cout<<endl; cout<<*it<<endl; //其实crend=cend+rend的特性组合。 //返回一个const_reverse_iterator(具有const属性的reverse_iterator)指向假设存在于一个倒序容器的最后一个位置后的超尾元素。 //(超尾元素本身并不是实际存在的) it1 = va.crend(); for_each(va.begin(), va.end(), print()); cout<<endl; cout<<*(it1-1)<<endl; //data int *p = va.data()+9; cout<<*p<<endl; /*emplace http://blog.csdn.net/qq844352155/article/details/38635465 */ for_each(va.begin(), va.end(), print()); cout<<endl; va.emplace(va.begin()+1, 100); for_each(va.begin(), va.end(), print()); cout<<endl; //erase cout<<"erase"<<endl; for_each(va.begin(), va.end(), print()); cout<<endl; va.erase(va.begin(),va.begin()+5); for_each(va.begin(), va.end(), print()); cout<<endl; //emplace_back一个相似的方法是push_back va.emplace_back(100); for_each(va.begin(), va.end(), print()); cout<<endl; if(!va.empty()) { //maxsize返回所能控制的最大长度 cout<<va.max_size()<<endl; } //front vector<int>::const_reference ref = va.front(); cout<<ref<<endl; vt.insert(vt.end(), 999); for_each(vt.begin(), vt.end(), print());}
1 0
- STL库vector的使用
- STL的vector使用
- STL之vector的使用
- STL之vector的使用
- STL------vector的简单使用
- STL之vector的使用
- STL之vector的使用
- STL之vector的使用
- STL之vector的使用
- STL之vector的使用
- STL 向量(vector)的使用
- C++ Stl的Vector使用
- STL vector的使用总结
- STL vector 的使用方式
- STL vector 的使用算法
- C++ STL的使用(vector)
- stl vector list的使用
- STL中vector的使用
- java8新特性lambda表达式, 函数式接口以及Steam流和新的日期时间例子代码
- iOS开发之文件上传
- 数据结构之栈
- Windows:Python3下安装Scrapy
- C#中转义字符串
- STL库vector的使用
- Java客户端连接不了安装在CentOS7上的redis解决方案
- vim 基础命令<二>
- 单链表的合并,排序与翻转
- FFmpeg
- Sublime Text 3 快捷键总结
- OpenMv入手软件驱动安装
- OpenCV-Python 图像与视频处理
- 对象