cs106B/L part1/2

1.const(让意图更加明显)

vector<int> vec={1,2,3};
int sum=0;
for(const auto& val:vec){ //遍历向量时,实际上并没有改变其值
sum+=val;
}
//sum=std::accumulate(vec.begin(),vec.end(),0);//0为初始值,累加vec里面的元素

2.string 流
流可以理解为字符的缓冲区

//字符串输出流,在缓冲区内部,已经包含了这些字符,意味着可以向字符串流中写入内容,但无法从中读取
	ostringstream oss("Ito-En Green Tea");
	//流具有的特殊操作,可以将缓冲区中的内容倾倒出来,并从中创建一个字符串
	cout<<oss.str()<<endl;//Ito-En Green Tea
	oss<<"16.9 Ounces";
//    oss<<16.9<<" Ounces";这样也是可以的,因为流支持插入任何类型,他会将该类型自动转换为流形式
	cout<<oss.str()<<endl;//16.9 Ouncesn Tea
	//指针默认是从缓冲区开头读取和写入
//字符串输出流,在缓冲区内部,已经包含了这些字符,意味着可以向字符串流中写入内容,但无法从中读取
	ostringstream oss("Ito-En Green Tea",ostringstream::ate);//加入常量,at the end,指针可以从末尾开始
	//流具有的特殊操作,可以将缓冲区中的内容倾倒出来,并从中创建一个字符串
	cout<<oss.str()<<endl;//Ito-En Green Tea
	oss<<"16.9 Ounces";
	cout<<oss.str()<<endl;//Ito-En Green Tea16.9 Ounces
	//指针默认是从缓冲区开头读取和写入
posted @ 2024-06-29 12:50  MENDAXZ  阅读(7)  评论(0编辑  收藏  举报