本文共 1802 字,大约阅读时间需要 6 分钟。
vector遍历:
类C遍历,按插入顺序
vector a = { 1,2,3,4,5};for(int i=0;i
迭代器遍历
vector a = { 1,2,3,4,5};for(vector ::iterator p=a.begin();p!=a.end();p++) printf("%d%s",*p,p==a.end()-1?"\n":" ");
类const迭代器访问,不可对原始vector进行修改
vector a = { 1,2,3,4,5};for(auto p = a.cbegin();p!=a.cend();p++) printf("%d%s",*p,p==a.cend()-1?"\n":" ");
自适应指针遍历,结尾会多一个空格
vector a = { 1,2,3,4,5};for(auto p:a) printf("%d ",p);
vector拷贝
int型vector
声明时拷贝,深拷贝
vector a = { 1,2,3,4,5};vector b(a);a.clear();for(auto p:b) printf("%d ",p);
赋值拷贝,深拷贝
vector a = { 1,2,3,4,5};vector b;b = a;a.clear();for(auto p:b) printf("%d ",p);
assign分配,深拷贝
vector a = { 1,2,3,4,5};vector b;b.assign(a.cbegin(), a.cend());a.clear();for(auto p:b) printf("%d ",p);
追加插入,深拷贝
vector a = { 1,2,3,4,5};vector b;b.insert(b.cend(),a.cbegin(), a.cend());a.clear();for(auto p:b) printf("%d ",p);
struct型vector
声明时拷贝,深拷贝
struct Node{ int n; Node(int nn){n = nn;}};vectora;for(int i=1;i<=5;i++) a.push_back(Node(i));vector b(a);a.clear();for(auto p:b) printf("%d ",p.n);
赋值拷贝,深拷贝
struct Node{ int n; Node(int nn){n = nn;}};vectora;for(int i=1;i<=5;i++) a.push_back(Node(i));vector b = a;a.clear();for(auto p:b) printf("%d ",p.n);
vector插入
插入单个数据:
vector a = { 1,2,3,4,5};a.insert(a.cbegin(),0);for(auto t:a) printf("%d ",t); //输出0 1 2 3 4 5
插入重复的单个数据:
vector a = { 1,2,3,4,5};a.insert(a.cbegin(),2,0);for(auto t:a) printf("%d ",t); //输出0 0 1 2 3 4 5
插入一个数组:
vector a = { 1,2,3,4,5};vector b = { 6,7};a.insert(a.cbegin(),b.cbegin(),b.cbegin()+1);for(auto t:a) printf("%d ",t); //输出6 1 2 3 4 5
转载地址:http://fkwji.baihongyu.com/