当前位置:C++技术网 > 资讯 > 利用Insert迭代器在STL各个容器中插入数值

利用Insert迭代器在STL各个容器中插入数值

更新时间:2016-02-28 18:05:47浏览次数:1+次

STL中,迭代器很重要,因此,有必要掌握它。

#include "iostream"
#include "vector"
#include "list"
#include "deque"
#include "set"
#include "algorithm"
#include "iterator"
#include "windows.h"
using namespace std;

int main()
{
	list<int> coll1;

	for(int i=1; i<=9; ++i)
	{
		coll1.push_back(i);
	}

	vector<int> coll2;
	for(int i=1; i<=3; ++i)
	{
		coll2.push_back(i);
	}
	copy(coll1.begin(),coll1.end(),back_inserter(coll2));//在coll2后面插入coll1

	deque<int> coll3;
	for(int i=3; i>=1; --i)
	{
		coll3.push_back(i);
	}
	copy(coll1.begin(),coll1.end(),front_inserter(coll3));//在coll3前面插入coll1

	multiset<int> coll4;
	coll4.insert(8);
	coll4.insert(1);
	coll4.insert(10);
	copy(coll1.begin(),coll1.end(),inserter(coll4,coll4.begin()));

	///输出测试:
	std::list<int>::iterator pos1;
	for(pos1=coll1.begin();pos1!=coll1.end();++pos1)
	{
		cout<<*pos1<<' ';
	}
	cout<<endl;

	vector<int>::iterator pos2;
	for(pos2=coll2.begin();pos2!=coll2.end();++pos2)
	{
		cout<<*pos2<<' ';
	}
	cout<<endl;

	deque<int>::iterator pos3;
	for(pos3=coll3.begin();pos3!=coll3.end();++pos3)
	{
		cout<<*pos3<<' ';
	}
	cout<<endl;

	multiset<int>::iterator pos4;
	for(pos4=coll4.begin();pos4!=coll4.end();++pos4)
	{
		cout<<*pos4<<' ';
	}
	cout<<endl;
	system("pause");
	return 0;
}

结果如图:

对于vector,deque,list三种容器,我们可以用push_back添加插入数值,对于set,map等,我们就需要用insert来插入了。对于这些基本知识的理解,请看《关联式容器的存储 》等,本站有相关的文章介绍。