1. 程式人生 > >Effective_STL 學習筆記(三) 使容器裡物件的拷貝操作輕量而正確

Effective_STL 學習筆記(三) 使容器裡物件的拷貝操作輕量而正確

 

  對於容器容納物件、從容器中獲取物件,STL的方式—— 拷進去拷出來

  物件通過使用它的拷貝成員函式來拷貝: 特別是它的複製建構函式和它的賦值操作符(=)

    Widget( const Widget & );

    Widget & operator = ( const Widget & );

  分割問題暗示了把一個派生類物件插入基類物件的容器幾乎總是錯的,一個使拷貝更高效、正確而且對分割問題免疫的簡單方式是建立指標的容器而不是物件的容器。指標拷貝快,且指標拷貝沒有分割。其中智慧指標的容器是一個吸引人的選擇。

  相比於陣列,STL vector 可以在需要的時候增長:

    vector<Widget> vw;    // 建立一個0個Widget物件的vector

    vw.reserve( maxNumWidgets );