1.string类的输入操作:
.读取并忽略开头所有的空白字符(空格,换行,制表);
.读取字符直至再次遇到空白字符,读取终止,
如:
string s1,s2;
cin>>s1>>s2;
cout<<s1<<s2<<endl;
输入“ Hello World ”
输出将是 “HelloWorld”
2.任何存储string的size()操作的变量必须是string::size_type类型,一定不要把size()的返回值赋给一个int变量;
3.当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的;
4.虽然任何整型值都可以作为索引,但最好用string::size_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之间是反向转化的。