最近,在做项目中遇到一个问题,需要用到用到向现有vector数组中插入vector数组的全部数据。惯例,还是用for循环进行实现
vector<int> vec1,vec2;
...
for (int i=0;i<(int)vec2.size();i++)
{
vec1.push_back(vec2[i]);
}
但是考虑到是否vector已经实现了相关的功能?所以进行了下面的研究:
在网上查找的大部分例子都是将一个数组的数据插入到vector中,
int nSize = 4;
int data = new int[nSize];
vector<int> vec;
...
vec.insert(vec.end(),data,data+nSize);
...
delete[] data;
vector插入一个数据的方法:push_back()和insert()
其中push_back()仅仅可以进行一个数据的插入
c.push_back(elem) 在尾部加入一个数据。
但是,insert却有三个重载函数
v.insert(pos,elem) 在pos位置插入一个elem拷贝,传回新数据位置(位置指传回地址值)。
v.insert(pos,n,elem) 在pos位置插入n个elem数据。无返回值。
v.insert(pos,beg,end) 在pos位置插入在[beg,end)区间的数据。无返回值。
参考上面的例子,终于实现了,vector数据的插入
vector<int> vecTemp;
vector<int> vec;
...
vec.insert(vec.end(),vecTemp.begin(),vecTemp.end());