11. 标准库string类型与字符串字面值
两者不是同一种类型,注意区分。
12. string对象的读写
//code
string s;
cin>>s;
cout<<s<<endl;
输入时:
读取并忽略开头所有的空白符(如空格,换行符,制表符);
读取字符直至再次遇到空白符,读取终止。
13. string::size_type类型
String对象进行size() 操作时返回size_type类型,不要把size()返回到一个int类型对象上,而是应该返回到 string::size_type 类型对象中。
14. string对象与字符串字面值混合连接
当进行string对象和字符串字面值混合连接操作时,+ 操作符左右操作数必须至少有一个为string对象。
15. vector
vector不是一种数据类型,而是一种类模板,vector类型的每一种都指定了其保存元素的类型,可以用于定义多种数据类型。
16. vector下标操作不添加元素
必须是已存在的元素才能用下标操作符进行索引。通过下标操作进行赋值时不会添加任何元素。
17. 迭代器
每种容器都定义了自身的迭代器。//code
vector<int> iVec;
vector<int>::iterator iter=iVec.begin(); //指向r容器的第一个元素
iter=iVec.end(); //指向容器的末端的下一个,称为 超出末端迭代器,表明指向的是一个不存在的元素。
18. const_iterator对象
const_iterator对象:其自身值可以改变,但不能改变其指向的值,可以进行自增与自减等操作;const iterator对象:必须在初始化,其自身不能改变,但其指向的值可以改变。
19. bitset类型
类模板,仅区别其长度,而不在其类型。定义时必须给定位的长度。bitset<32> bitVec;
bitset<16> bitVect1(0xffff); //用unsigned
string str(“1100”);
biteset<32> bitVec3(str); //第2和3位为1,剩下的置0。
20. 数组初始化
在函数体外定义的内置数组,其元素均初始化为0;在函数体内定义的内置数组,其元素无初始化。元素为类类型时,自动调用默认构造函数初始化,若无默认构造函数,需显示初始化。