chapter16_11.cpp
#include <iostream>
#include <string>
#include <iterator>
#include <vector>
#include <algorithm>
void output(const std::string & s) {std::cout << s << " ";} //output接受一个引用传入参数
int main(){
using namespace std;
string s1[4] = {"fine", "fish", "fishion", "fate"}; //三个string字符串
string s2[2] = {"busy", "bats"};
string s3[2] = {"silly", "singers"};
vector<string> words(4); //words是一个包含4个string数据的vector容器
copy(s1, s1 + 4, words.begin()); //把数组s1的数据拷贝到容器words内
for_each(words.begin(), words.end(), output); //输出words这个容器内的数据
cout << endl;
copy(s2, s2 + 2, back_insert_iterator<vector<string>> (words)); //使用back_insert_iterator迭代器把s2的数据添加到words的尾部
for_each(words.begin(), words.end(), output);
cout << endl;
copy(s3, s3 + 2, insert_iterator<vector<string>>(words, words.begin())); //使用insert_iterator迭代器把s3的数据添加到words的起始位置
for_each(words.begin(), words.end(), output); //for_each是头文件algorithm中的内置函数
cout << endl;
//注意,copy只是一个函数,没有调整容器大小的功能,但是迭代器可以调整容器大小而不会报错
return 0;
}