实战c++中的vector系列--assign() push_back() or insert()
2015-12-15 21:51
393 查看
之前博客《实战c++中的vector系列–构造、operator=和assign区别》写了关于assign()方法,其中有一条就是:
replacing its current contents
modifying its size accordingly
就是替换了vector中已经存在的元素。
这里就不再说明assign了。
push_back故名意思就是在vector末尾追加:
uses push_back to add a new element to the vector
具体使用就不写代码了,就是每一次push_back只能加入一个元素。
剩下的就是insert:
实际应用:
assign vs insert
只有当vector为空的时候,assign和insert是相同的。
如果vetor是空的,使用assign更好。
replacing its current contents
modifying its size accordingly
就是替换了vector中已经存在的元素。
这里就不再说明assign了。
push_back故名意思就是在vector末尾追加:
void push_back (const value_type& val); void push_back (value_type&& val);
uses push_back to add a new element to the vector
具体使用就不写代码了,就是每一次push_back只能加入一个元素。
剩下的就是insert:
single element (1) iterator insert (const_iterator position, const value_type& val); fill (2) iterator insert (const_iterator position, size_type n, const value_type& val); range (3) template <class InputIterator> iterator insert (const_iterator position, InputIterator first, InputIterator last); move (4) iterator insert (const_iterator position, value_type&& val); initializer list (5) iterator insert (const_iterator position, initializer_list<value_type> il);
实际应用:
// inserting into a vector #include <iostream> #include <vector> int main () { std::vector<int> myvector (3,100); std::vector<int>::iterator it; it = myvector.begin(); it = myvector.insert ( it , 200 ); myvector.insert (it,2,300); // "it" no longer valid, get a new one: it = myvector.begin(); std::vector<int> anothervector (2,400); myvector.insert (it+2,anothervector.begin(),anothervector.end()); int myarray [] = { 501,502,503 }; myvector.insert (myvector.begin(), myarray, myarray+3); std::cout << "myvector contains:"; for (it=myvector.begin(); it<myvector.end(); it++) std::cout << ' ' << *it; std::cout << '\n'; return 0; } //输出: myvector contains: 501 502 503 300 300 400 400 200 100 100 100
assign vs insert
只有当vector为空的时候,assign和insert是相同的。
如果vetor是空的,使用assign更好。
相关文章推荐
- c++_10: string类
- C语言之结构体和共同体——结构体的定义和使用
- 进制转换
- C++函数运算符重载
- 黑马程序员--C语言自学笔记---04分支结构
- 实战c++中的vector系列--将迭代器转换为索引
- 实战c++中的vector系列--将迭代器转换为索引
- 值得推荐的C/C++框架和库 (真的很强大)
- Ubuntu Android开发:缺少libstdc++.so.6和libz.so.1文件
- C++能设计实现一个不能被继承的类吗
- 实战c++中的vector系列--构造、operator=和assign区别
- 实战c++中的vector系列--构造、operator=和assign区别
- VC++获取当前系统时间日期 GetSystemTime()函数的用法
- 【POJ 2104】K-th Number 题意&题解&代码(c++)
- C语言: 桶排序
- 在c++代码中执行bat文件
- C++中指针与引用的关系
- 【先进的算法】Lasvegas算法3SAT问题(C++实现代码)
- C语言for语句用法详解
- 数组引用:C++ 数组做参数 深入分析