對照著c++primier 開始學習第九章容器,把課後習題當做練習,雖然是看過書上的講解,但是做題編程的時候,一些需要注意的地方還是難免有遺漏。
一下是幾點印象比較深刻的總結:
(1)前幾章只學了vector容器,其實還有list和deque;
(2)定義容器和定義迭代器不要搞混淆了,比如說定義一個int型的vector容器為vector<int>vec;則定義一個int型的vector迭代器則為vector<int>::iterator ivec
(3)對迭代器進行解引用,得到的是迭代器所指的容器中對應元素的值,迭代器相當於指針,解引用相當於指針所指向的值
(4)關於main函數的建立,之前看書上的例子,一直是_tmain(int argc,_TCHAR*argv[])兩個參數分別為參數個數和參數數組,如果不加#include<tchar.h>,編譯的時候還會在_TCHAR*上報錯,而且還一直出現一個錯誤,就是什麼error2039,後來學長幫我,把主函數改成int main(void),錯誤就消失了,真是要多請教過來人。
(5)不要存儲end操作返回的迭代器(例如 ilast=ilist.end()),添加或者刪除deque或者vector中的元素都會導致存儲的迭代器失敗。書上給的,感覺蠻好的。
(6)在進行兩個容器比較的時候,有一下幾個條件:(1)兩個容器是相同類型的容器
(2)兩個容器中的元素類型相同
(3)容器中元素的類型支持所用的比較操作符
(7)兩個容器相等的情況:(1)元素個數相同,元素相等
(2)元素個數不等,但其中一個是另一個的前子序列