C Primer Plus书中代码注释-chapter16_11.cpp

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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值