<1>有文件
#include <vector>
<2>创建vector对象
std::vector<int> vec; //模板类型可以是 int double short string struct class map list set vector等
<3>数据插入vector
vec.push_back(a); vec.push_back(b); vec.push_back(c); #删除vec向量最后一个元素 vec.pop_back()
<4>指定位置插入数据
# 在第i+1个元素前面插入a vec.insert(vec.begin()+i,a);
#在指定位置loc 前插入值为val的元素,返回指向这个元素的迭代器 iterator insert(iterator loc,cosnt TYPE &val);
#在指定位置loc前插入num个值为val的元素
void insert(iterator loc,size_tpye num, const TYPE &val);
#在指定位置loc前插入区间[start, end)的所有元素
void insert(iterator loc ,input_iterator start, input_iterator end)
<5>删除元素
#删除第i + 1 个元素 vec.erase(vec.begin() + i)
<6>删除区间里的元素
#删除区间[i,j-1]元素,下标从0开始 vec.erase(vec.begin() + i,vec.end() + j)
<7>向量大小
vec.size() #返回vec在内存中总共可以容纳的元素个数 vec.capacity() #将vec的现有元素个数调至10个,多则删,少则补,其值随机 vec.rezize(10) #将vec的现有元素个数调至10个,多则删,少则补,其值为2 vec.resize(10,2) #b为向量,将a中的元素和b中的元素进行整体性交换 a.swap(b) #b为向量,向量的比较操作还有!=,>=,<=,>,< a == b
<8>清空向量
vec.clear()
<9> 向量元素访问 下标法 (下标只能用于获取已存在的元素,而现在的vec[i]还是空的对象)
cout<< vec[0]<<endl; cout<< vec[1]<<endl; cout<< vec[2]<<endl; #返回vec最后一个元素 vec.back() #返回vec第一个元素
<10>向量元素访问 at(i)
for(int i = 0;i < vec.size();i++) { cout<<vec.at(i)<<endl; }<11>向量元素访问 迭代器iterator
std::vector<int>::interator it; #for(std::vector<int>::interator it = vec.begin();it != vec.end();it++) for(it = vec.begin() ; it != vec.end() ;it++) { cout<<*it<<endl; }
<12> 向量vector 排序 需要头文件
#include<algorithm>
#将vec元素翻转 倒序 reverse() reverse(vec.begin(),vec.end())
# sort() 默认是升序排序 从小到大 sort(vec.begin(),vec.end())
降序排序定义自己的比较函数
bool comp(cost int &a, const int &b) { return a > b; } 调用时: sort(vec.begin(),vec.end(),comp)
<13>二维数组vector 使用
#include "stdafx.h" #include <cv.h> #include <vector> #include <iostream> using namespace std; int main() { using namespace std; int out[3][2] = { 1, 2, 3, 4, 5, 6 }; vector <int*> v1; v1.push_back(out[0]); v1.push_back(out[1]); v1.push_back(out[2]); cout << v1[0][0] << endl;//1 cout << v1[0][1] << endl;//2 cout << v1[1][0] << endl;//3 cout << v1[1][1] << endl;//4 cout << v1[2][0] << endl;//5 cout << v1[2][1] << endl;//6 return 0; }
参考:
https://blog.csdn.net/fanyun_01/article/details/56842637
https://blog.csdn.net/duan19920101/article/details/50617190/
https://blog.csdn.net/msdnwolaile/article/details/52708144