vector::insert()

来源:互联网 发布:linux iso镜像下载64 编辑:程序博客网 时间:2024/06/15 00:18





iterator insert( iterator loc, const TYPE &val ); 

void insert( iterator loc, size_type num, const TYPE &val ); 
void insert( iterator loc, input_iterator start, input_iterator end ); 

loc是迭代器,表示在这个位置插入,这点的原来元素以及后面的点都往后移动K位(k=1,2,3...),这里实现了内存的reallocation.

insert() 函数有以下三种用法: 

在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器, 
在指定位置loc前插入num个值为val的元素 
在指定位置loc前插入区间[start, end)的所有元素 . 

举例: 

#include <iostream>
#include <vector>
using namespace std;
int main ()
{
std::vector<int> myvector (3,100);
std::vector<int>::iterator it;


it = myvector.begin();
it = myvector.insert ( it , 200 );
for (it = myvector.begin();it != myvector.end();it++)
 cout<< *it<<" ";
cout<<endl;
myvector.insert (it,2,300);  //在end位置插入
for (it = myvector.begin();it != myvector.end();it++)
cout<< *it<<" ";
cout<<endl;
// "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());
for (it = myvector.begin();it != myvector.end();it++)
cout<< *it<<" ";
cout<<endl;
int myarray [] = { 501,502,503 };
myvector.insert (myvector.begin(), myarray, myarray+3);
for (it = myvector.begin();it != myvector.end();it++)
cout<< *it<<" ";
cout<<endl;
std::cout << "myvector contains:";
for (it=myvector.begin(); it<myvector.end(); it++)
std::cout << ' ' << *it<<" ";
std::cout << '\n';
system("pause");
return 0;
}



0 0
原创粉丝点击