通常技術性的書籍是不會寫書摘的,頂多也是寫感想,不過這是借的,而且真的學到很多,記下一些資料之後會更好查。 1.extern 的用法仍然困惑著我。 在標頭檔,宣告如下: const vector<int>* (*seq_array[seq_cnt])(int); 失敗因為被當成定義,物件的定義必須至於本文檔。 //ok,以下是宣告。 extern const vector<int>* (*seq_array[seq_cnt])(int); 2.insertion adapters back_inserter()會以容器的push_back()函式取代assignment運算子。vector適用。 vector<int> result_vec; unique_copy(ivec.begin(),ivec.end(),back_inserter(result_vec)); inserter()會以容器的insert()函式取代assignment運算子。接受兩個運算子,一個是容器,一個是插入點的interator。 vector<sting> result_vec; unique_copy(svec.begin(),svec.end(),inserter(result_vec,result_vec.end())); front_inseter()會以容器的push_front()函式取代assignment運算子。適用於list 和deque: list<int> ilist_clone; copy(ilist.begin(),ilist.end(),front_inseter(ilist_clone)); 3.Member initialization list主要在將參數傳給member class object的constructer。如下例:_name直接初始化,對於需直接初始化且無設定值函式的特殊物件,有特殊的功用。另有效率考量。 MemIniList::MemIniList(int len, int bp)::_name(nameobject){} 或者在template編程 template <typename valType> inline BTnode<valTy...