C++ primer 第五版 中文版 练习 10.28
题目:一个vector中保存1到9,将其拷贝到三个其它容器中。
分别使用inserter、back_inserter和front_inserter将元素添加到三个容器中。
对每种inserter,估计输出序列是怎么样的,运行程序验证你的估计是否正确。
答:
#include <iostream>
#include <iterator>
#include <vector>
#include <string>
#include <list>
#include <deque>
#include <algorithm>
using namespace std;
int main()
{
vector<int> ivect = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
list<int> ilist;
string mystr;
deque<int> ideque;
copy(ivect.cbegin(), ivect.cend(), front_inserter(ilist));
copy(ivect.cbegin(), ivect.cend(), back_inserter(mystr));
copy(ivect.cbegin(), ivect.cend(), inserter(ideque,ideque.begin()));
for_each(ilist.cbegin(), ilist.cend(), [](const int &a){cout << a << " "; });
cout << endl;
for_each(mystr.cbegin(), mystr.cend(), [](const int &a){cout << a << " "; });
cout << endl;
for_each(ideque.cbegin(), ideque.cend(), [](const int &a){cout << a << " "; });
cout << endl;
return 0;
}