c++ STL函数大全(一):vector
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c++ STL函数大全(一):vector,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3013字,纯文字阅读大概需要5分钟。
内容图文
![c++ STL函数大全(一):vector](/upload/InfoBanner/zyjiaocheng/721/42e5910dd28142ea852cee495cfd517a.jpg)
目录
0 准备:
#include<vector>
一 Initialize & assignment
int size,inival;
vector<int> a(size); // 容器元素个数确定,初始值不确定
vector<int> a(size,inival); // 容器元素个数size,初始值全是inival
vector<int> a(vecb); //容器赋值
vector<int> a(b.begin,b.begin()+3) //把0-2三个元素赋值
int b[7]={1,2,3,4,5,6,7}
vector<int> a(b,b+7); //用数组赋值
二 operator
操作无非就是增删查改,,,,
2.1 add
vector<int> a;
//清空所有元素
a.clear()
//删除最后一个元素
a.pop_back()
//删除a中第一个(从第0个算起)到第二个元素,也就是说删除的元素从a.begin()+1算起(包括它)
//一直到a.begin()+3(不包括它)结束(前开后闭)
a.erase(a.begin()+1,a.begin()+3);
e.g: 0 1 2 3 4 -> 0 3 4
2.2 delete
vector<int> a,b;
//在a的最后元素后插入5
a.push_back(5)
//在a的第一个元素(从第0个算起)位置插入5,依次后移
a.insert(a.begin()+1,5);
e.g: 0 1 2 -> 0 5 1 2
//在a的第0个元素位置插入3个8,依次后移
a.insert(a.begin(),3,8);
e.g: 0 1 2 -> 8 8 8 0 1 2
//b为数组,在a的第一个元素的位置插入b的第三个元素到第5个元素(不包括b+6)
a.insert(a.begin()+1,b+3,b+6);
2.3 query
//返回第一个元素
a.front()
//返回最后一个元素
a.back()
//返回第i个元素
a[i]
//判断a是否为空,空则返回true,非空则返回false
a.empty();
//a中元素个数
a.size()
//返回a在内存中总共可以容纳的元素个数
a.capcity()
//两个vector是否相等
a==b
2.4 change
vector<int> a,b;
//b为向量,将b的0-2个元素赋值给向量a
a.assign(b.begin(),b.begin()+3);
//a含有3个6
a.assign(3,6);
//将a的现有元素个数调整至10个,多则删,少则补,其值随机(vs测试为0)
a.resize(10);
//将a的现有元素个数调整至10个,多则删,少则补,其值为2
a.resize(10,2);
//将a的容量扩充至100,
a.reserve(100);
//b为向量,将a中的元素和b中的元素整体交换
a.swap(b);
三 常见写法及误区
1.从现有vector 中选择元素添加
int a[5]={0,1,2,3,4}
vector<int> b(a,a+4);
vector<int> c;
for(vector<int>::iterator it=b.begin(); it<b.end(); ++it)
c.push_back();
//result : b=c={0 1 2 3}
2.从文件中读取元素添加
#include<fstream>
vector<int> a;
ifstream in("data.txt");
for(int i;in >> i)
a.push_back(i);
e.g: "1 2 3" -> 1 2 3
"1,2,3" -> 1
"1 \n 2 \n 3" -> 1 2 3
3.读取全部元素
1.通过下标方式获取
int a[6]={1,2,3,4,5,6};
vector<int>b(a,a+4);
for(int i=0;i<=b.size()-1;++i)
{cout<<b[i]<<endl;}
2.通过迭代器方式读取
int a[6]={1,2,3,4,5,6};
vector<int>b(a,a+4);
for(vector<int>::iterator it=b.begin();it!=b.end();it++)
{cout<<*it<<" ";}
4.常见错误赋值方式
vector<int>a;
for(int i=0;i<10;++i)
{a[i]=i;}
//下标只能用来获取已经存在的元素,
而未初始化的a实际上capcity是0
四 封装好的算法
#include<algorithm>
//对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列
sort(a.begin(),a.end());
//对a中的从a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,如a中元素为1,3,2,4,倒置后为4,2,3,1
reverse(a.begin(),a.end());
//把a中的从a.begin()(包括它)到a.end()(不包括它)的元素复制到b中,从b.begin()+1的位置(包括它)开始复制,覆盖掉原有元素
copy(a.begin(),a.end(),b.begin()+1);
//在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置
find(a.begin(),a.end(),10);
内容总结
以上是互联网集市为您收集整理的c++ STL函数大全(一):vector全部内容,希望文章能够帮你解决c++ STL函数大全(一):vector所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。