C++基礎::STL中的定理
C++標準庫中凡”凡必須返回兩個value”的函式都使用pair物件
我們以set的插入成員函式insert
為例加以說明,因為set容器是一個自動排序的容器,set容器要求,插入元素要返回插入的位置以插入是否成功兩個屬性:
set<int> iset;
...
pair<set<int>::iterator, bool> res = iset.insert(1);
// 這樣的寫法並無太多實際的意義,不太會直接操縱這樣一個pair物件
// 或者用auto 關鍵字
// 或者直接 if(iset.insert(1))
if (res.second)
cout << "1 inserted" << endl;
else
cout << "1 already exists" << endl;
STL容器提供的是“value semantic”而不是“reference semantic”
除了效率的問題之外,value semantic
的一大問題是無法在數個不同的容器中管理同一份物件。那麼我們該如何在STL容器中實現reference semantic
,這個問題可參看<C++STL::兩種方式實現STL容器的reference語義>。
empty
對於所有的標準庫型別其empty()成員函式都是一種查詢操作,用以詢問是否容器為空,因此返回一個bool
型別變數,而不是一種清零操作。
相關文章
- C++基礎::非型別模板引數在STL中的應用C++型別
- 【STL】list基礎
- 談談 C++ STL 中的迭代器C++
- UA MATH563 概率論的數學基礎 中心極限定理5 Renyi定理H5
- 跟我學C++中級篇——STL的學習C++
- C++ STL listC++
- C++ STL stackC++
- C++ STL -- vectorC++
- C++ STL -- listC++
- C++ STL -- HashTableC++
- C++ 基礎C++
- c++基礎C++
- 【C++ STL】Set用法C++
- C++ 模板與STLC++
- 數論入門基礎(同餘定理/費馬小定理/擴充套件歐幾里德演算法/中國剩餘定理)套件演算法
- GUN C++ STL中的vector的記憶體分配器C++記憶體
- STL——STL中vector的實現原理
- C++基礎::StreamC++
- python基礎中的基礎Python
- C++ stl容器詳解C++
- C++ STL之迭代器C++
- C++ STL迭代器(iterator)C++
- C++ STL學習——vectorC++
- C++ STL容器總結C++
- C++ STL簡介 (轉)C++
- C++基礎語法C++
- C++基礎 constC++
- C++基礎知識C++
- C++基礎::stringC++
- [譯]基礎中的基礎,JavaScript中的值和引用JavaScript
- C++實踐:STL容器reserveC++
- [C++] STL相關面試題C++面試題
- C++ STL學習之stack。C++
- UA MATH563 概率論的數學基礎 中心極限定理12 強大數定律 版本2:Etemadi定理H5
- 【01】C到C++(基礎)C++
- c++基礎三(變數)C++變數
- 面試總結(C++基礎)面試C++
- C++基礎::檔案流C++