继续。。
1. size_t和string::size_type, vector::size_type.
bitset的size函数返回值类型是size_t。string和vector的size函数返回值类型是对应的size_type
size_t 是一个于机器无关的unsigned类型,其大小足以储存内存对象的大小。
一般数组下标的类型是size_t
2.string类的+操作。
+的左右操作数必须至少有一个是string类型的,eg:string str = "hello" +"," + "world\n" 是错误的。不能把字符串字面值直接相加。
eg:string str = s1 + ",' + "world"是正确的,因为是s1 + ","将返回一个string对象
3.const vector<int> civ(9,10);//蛋疼的定义。。一个不能动的vector,里面存了9个10。
对const vector定义迭代器是必须用vector<int>::const_iterator 类型;不能用vector<int>::iterator!!
4.vector还有个类型是dfifference_type用来存迭代器想减后的数据,是signed的。
5.bitset类型。cout出来时,右边是低位,左边是高位。
用string初始化是,是截断右边的
eg:
string str("10111110011");
bitset<8> b(str);//注意。不能用const char *来做参数,必须用string类型!!!
cout << b << endl;
此时输出b是10111110
bitsec<n> b(s, pos. n)表示,从字符串s的第pos位读n个字符,作为bit。
赋值时,从字符串里读出来的字符的最右边为最低位,若读取位数过多,截断高位。
6.bitset和string的下标是反的!!string的最右边,即下标最大的,在bitset中下标为0(最右边)
7.&符号(取地址)只能作用于左值。