STL之vector向量容器常用方法
来源:互联网 发布:大数据解决方案 ppt 编辑:程序博客网 时间:2024/06/05 22:46
vector向量容器不但能像数组一样对元素进行随机访问,还能在尾部插入元素,是一种简单,高效的容器,完全可以代替数组
vector具有内存自动管理功能,对于元素的插入和删除,可动态调整所占的内存空间
vector容器的下标是从0开始计数的
vector具有内存自动管理功能,对于元素的插入和删除,可动态调整所占的内存空间
vector容器的下标是从0开始计数的
创建vector对象
创建vector对象常用的有三种形式。(1)不指定容器的元素个数,如定义一个用来存储整型的容器:
vector<int> v;
(2)创建时,指定容器的大小,如定义一个用来存储10个double类型元素的向量容器:
vector<double>v(10)
注意,元素的下标为0~9;另外,每个元素的值被初始化为0.0。
(3)创建一个具有n个元素的向量容器对象,每个元素具有指定的初始值:
vector<double>v(10,9.6)
上述语句定义了v向量容器,共有10个元素,每个元素的值是8.6
用迭代器访问vector元素
#include<iostream>#include<vector>#include<numeric>using namespace std;int main(int argc,char* argv[]){ vector<int> v(3); int i; for(i=0;i<10;i++) { //尾部元素扩张方式赋值,在vector容器在尾部追加新元素 v.push_back(i); } vector<int>::iterator it; //用迭代器定义变量 for(it=v.begin();it!=v.end();it++) { cout<<*it<<" "; //输出迭代器当前位置上的元素值 } cout<<endl; //回车换行 cout<<accumulate(v.begin(),v.end(),0)<<endl; //统计并输出向量所有元素的和 }
插入
insert()方法可以在vector对象的任意位置前插入一个新的元素,同时,vector自动扩张一个元素空间,插入后的所有元素一次向后挪动一个位置注意:insert()方法要求插入的位置,是元素的迭代器位置,而不是元素的下标
int main(int argc,char* argv[]){ vector<int> v(3); v[0]=2; v[1]=4; v[2]=6; v.insert(v.begin(),1); v.insert(v.begin()+2,3); v.insert(v.begin()+4,5); vector<int>::iterator it; for(it=v.begin();it!=v.end();it++) { cout<<*it<<" "; } cout<<endl; return 0;}
删除
erase()删除一个或一段区间内的元素clear()一次性删除vector内的所有元素
v.erase(v.begin()+2); //删除第几个元素
v.erase(v.begin()+2,v.begin()+5); //删除迭代器一段区间内的元素
v.clear(); //清空向量
reverse反向排列
reverse(v.begin(),v.end());
sort从小到大
sort(v.begin(),v.end());
向量的大小
size()向量的大小empty()返回向量是否为空
cout<<v.size()<<endl;cout<<v.empty()<<endl;
阅读全文
0 0
- STL之vector向量容器常用方法
- STL---之vector向量容器
- 【C++】STL常用容器总结之三:向量vector
- STL顺序容器之向量(vector)
- STL向量容器vector
- STL vector向量容器
- C++STL库学习之向量容器vector & string容器
- STL 向量容器(vector)
- STL 向量容器(vector)
- STL 向量容器(vector)
- STL 向量容器(vector)
- STL-顺序容器-向量vector
- STL之向量(vector)
- STL之向量Vector
- STL泛型编程学习之vector向量容器
- STL系列之deque双端队列+vector向量容器
- STL容器之vector
- STL容器之 vector
- Android图像处理_底片效果
- 关于Java的File.separator
- Android错误提示信息: java.lang.StackOverflowError: stack size 8MB
- iOS取CGFloat的小数点后2位
- 网站一直排名在100名之外的原因
- STL之vector向量容器常用方法
- JSF表达式语言
- C#新建数组
- jQuery EasyUI API
- redis和Memcached区别
- Linux基础笔记
- 《统计学习方法》笔记——朴素贝叶斯算法
- JavaScript的执行原理
- OpenCV学习笔记 利用MFC的Picture控件显示图像+播放视频和捕获摄像头画面