9.1順序容器的定義

  1. 順序容器的初始化,使用默認構造函數:元素類型必須有默認構造函數;不適用默認構造函數:元素類型沒有默認構造函數,必須指定元素個數,並提供初值(初始化爲另一同類型的的已存在容器是同時指定個數和初值的方法)。
  2. 使用兩個迭代器指定容器的第一個元素和最後一個元素:
    迭代器爲第一個元素,和最後一個元素後的一個元素;
    不要求容器類型相同,也不要求元素類型相同(可轉換、兼容即可);
    可以複製另一個容器的一個子序列; 
    指針也是迭代器,允許使用內置數組的一對指針(注意不要越過數組範圍)。
  3. 指定元素數目的大小,可使用常量或非常量的表達式。
  4. 不提供初始化式,將使用值初始化。 
  5. 容器元素類型約束:
    (1)支持賦值運算:
    (2)元素類型對象支持複製。(IO庫類型不支持賦值或複製,所以不能作爲元素類型)
  6. 例子:
    Foo類型沒有 默認構造函數,但有一個int型形參餓構造函數,以下聲明:
    vector<Foo> empty; //正確:不需要用到默認構造函數
    vector<Foo> bad(10); //錯誤:需要默認構造函數,但是類型Foo沒有
    vector<Foo> ok(10,1); //正確:元素都初始化爲1,不需要用默認構造函數
  7. 容器的容器,注意尖括號的空格使用:
    vector< vector<string> > lines;
    兩個>之間如果沒有空格,會被認爲是右移操作符>>,導致編譯錯誤 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章