Q&A:string、vector、iterator、bitset
细节要点
getline(cin,string)与cin>>string
在VS2013中通过输入换行符\n
,对getline以及cin的用法进行测试,但是并没有像文中所述遇到换行符停止读入。而是ReadKey回车后停止读取。
getline
这个函数接受两个参数: 一个输入流对象和一个 string 对象。getline 函数从输入流的下一行读取,并保存读取的内容到不包括换行符。
和输入操作符不一样的是,getline 并不忽略行开头的换行符。只要 getline 遇到换行符,即便它是输入的第一个字符,getline 也将停止读入并返回。如果第一个字符就是换行符,则 string 参数将被置为空 string。
vector
可用于管理同一类型的对象集合。
迭代器(iterator)
- const_iterator对象
只能读取容器内的元素,但不能改变它的值。 它可以用于 const vector 或非 const vector,因为不能改写元素的值。 - const的iterator对象
vector<int> nums(10); // nums is nonconst
const vector<int>::iterator cit = nums.begin();
*cit = 1; // ok: cit can change its underlying element
++cit; // error: can't change the value of cit
声明const迭代器必须要先初始化,一旦初始化后就不能改变它的值,也不能指向其他元素。
总结
C++ 标准库定义了几种更高级的抽象数据类型,包括 string 和 vector 类型。
- string 类型提供了变长的字符串。
- vector 类型则可用于管理同一类型的对象集合。
- 迭代器实现了对存储于容器中对象的间接访问。迭代器可以用于访问和遍历 string 类型和 vectors 类型的元素。
参考资料
- C++ Primer 4th Edition
作者:弦断
出处:http://www.cnblogs.com/ucas/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。