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来插入了。对于这些基本知识的理解,请看《关联式容器的存储 》等,本站有相关的文章介绍。