<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