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++
- C++ STL -- vectorC++
- C++ STL -- listC++
- C++ STL -- HashTableC++
- C++ STL stackC++
- C++ STL listC++
- 跟我學C++中級篇——STL的學習C++
- C++ STL deque容器C++
- C++中string字串的基礎操作,學習C++字串
- UA MATH563 概率論的數學基礎 中心極限定理5 Renyi定理H5
- c++基礎C++
- C++ STL stack容器——棧C++
- C++ STL迭代器(iterator)C++
- C++ stl容器詳解C++
- C++ STL之迭代器C++
- 數論入門基礎(同餘定理/費馬小定理/擴充套件歐幾里德演算法/中國剩餘定理)套件演算法
- C++基礎 constC++
- 【C++】C++基礎知識C++
- C++ STL list連結串列C++
- C++的基礎學習5C++
- python基礎中的基礎Python
- C++基礎總結C++
- C++基礎知識C++
- C++基礎語法C++
- C++提高程式設計-STLC++程式設計
- stl中map的基本用法
- C++基礎學習6C++
- C++基礎學習1C++
- C++基礎資料二C++
- C++基礎知識整理C++
- c++基礎三(變數)C++變數
- 【01】C到C++(基礎)C++
- [譯]基礎中的基礎,JavaScript中的值和引用JavaScript
- UA MATH563 概率論的數學基礎 中心極限定理12 強大數定律 版本2:Etemadi定理H5
- C++基礎知識篇:C++ 運算子C++
- 計量經濟學(十五)的理論基礎——時間序列分解定理
- STL中的迭代器分類
- C++基礎簡單總結C++
- c++基礎十(流程結構)C++