1、insert是stl的容器插入函数。不同容器有不同用法。
vector容器的insert函数定义说明,vector 的insert函数用三种用法,分别是
iterator insert (iterator position, const value_type& val);
参数:迭代器插入位置,值地址引用内容。返回:迭代器
void insert (iterator position, size_type n, const value_type& val);
参数:迭代器插入位置,元素个数,值地址引用。返回:空
void insert (iterator position, InputIterator first, InputIterator last);
参数:迭代器插入位置,待插入起点迭代器,待插入终点迭代器。返回:空
2、例程:
// inserting into a vector
#include
#include
int main ()
{
std::vectormyvector (3,100);
std::vector::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::vectoranothervector (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(); itstd::cout << ' ' << *it;
std::cout << '\n';
return 0;
}
输出:
myvector contains: 501 502 503 300 300 400 400 200 100 100 100
同意wo370506875的说法,这个不是用不用v.reserve(6)的问题,是p的位置已经改变了,你只要在p++;
p++;
的前面加上一句p=v.begin();
问题就不是问题!
luosiyong 提供的网站非常好哦! (http://www.cplusplus.com/reference/stl/vector/)