 | 第三章主要说了string类和vector容器。 1.string类的输入操作: .读取并忽略开头所有的空白字符(空格,换行,制表); .读取字符直至再次遇到空白字符,读取终止, 如: string s1,s2; cin>>s1>>s2; cout<<s1<<s2<<endl; 输入“ Hello World ” 输出将是 “HelloWorld” 2.任何存储string的size()操作的变量必须是string:ize_type类型,一定不要把size()的返回值赋给一个int变量; 3.当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的; 4.虽然任何整型值都可以作为索引,但最好用string:ize_type类型的变量作为索引; 5.C++程序员习惯于优先选用!=而不是<在编写循环判断条件;(泛型编程?) 6.迭代器的使用: for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter) *iter=0; 作用:将ivec中的所有元素赋值为0; 7.const_iterator:自身值可以改变,但不能用来改变其所指向的元素的值; vector<string>::const_iterator iter=text.begin(); ++iter;//OK! *iter="hello"//error (注意与const 型的iterator的区别:后者只能用来改变其指向的元素,不能使它指向其他元素) 8.两迭代器相减得到的different_type类型的值,两迭代器必须指向同一vector元素; 9.用vector<int>::iterator mid=vi.begin(1+ci.size()/2)来初始化指向中间元素的迭代器,效率不错; 10.任何改变vectore长度的操作都会使已存在的迭代器失效。 11.bitset类用于保存一组项或条件的yes/no信息的简介方法,sring类和bitset之间是反向转化的。
| |