第三章主要說了string類和vector容器。
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之間是反向轉化的。
摘自 左腦設計,右腦編程