bool empty() const;
size_type size() const;
reference top(); //reference為引用
const_reference top() const;
void push(const value_type& x);
void pop();
stack預設使用deque來實現。通過stack>,可以使用標準庫的list來實現。
bool empty() const;
size_type size() const;
reference front(); //reference為引用
const_reference front() const;
reference back();
const_reference back() const;
void push(const value_type& x);
void pop();
queue預設使用deque來實現。通過queue>,可以使用標準庫的list來實現。
iterator begin();
iterator end();
reference operator(size_type n);
reference front();
reference back();
size_type size() const;
bool empty() const;
void push_back(const value_type& t);
void push_front(const value_type& t);
void pop_back();
void pop_front();
void clear();
iterator erase(iterator pos); //返回指向刪除位置的迭代器,這個位置現在有元素填充
iterator erase(iterator first, iterator last); // 返回指向第乙個刪除位置的迭代器
iterator insert(iterator position, const value_type& x);//返回指向新加入元素的迭代器
deque的迭代器設計很複雜。deque是分段連續的,其迭代器是指向每個分段的。然而,每個分段都有三個指標,分別是first\last\cur,指向分段第乙個、最後乙個和當前的元素。當對迭代器進行操作時,內部實現為對cur的操作,也就實現了對元素而不是分段的操作。可以用find函式來通過迭代器進行查詢。
iterator begin();
iterator end();
//reference operator(size_type n); list沒有過載運算子
reference front();
reference back();
size_type size() const;
bool empty() const;
void push_back(const t& t);
void push_front(const t& t);
void pop_back();
void pop_front();
void clear();
void remove(const t& value); //將數值為value之前的所有元素移除
void unique(); //移除數值相同的連續元素,使其只剩乙個。重點:數值相同且連續。
iterator erase(iterator pos); //返回指向刪除位置的迭代器,這個位置現在有元素填充
void splice(iterator pos, list&x); //將x接合於pos所指的位置之前,x必須不同於*this
void splice(iterator pos, list&, iterator i); //將i所指向的元素接合於position所指位置之前,pos
//和x可以指向同乙個list
void merge(list&x); //將x合併到*this身上,兩個list的內容都必須經過遞增排序
void reverse(); //將*this的內容逆向重置
void sort(); //list不能使用stl的sort演算法。本函式使用快排實現。
iterator insert(iterator position, const value_type& x);//返回指向新加入元素的迭代器
C 容器(STL容器)
容器 container 用於存放資料的類模板。可變長陣列 鍊錶 平衡二叉樹等資料結構在stl中都被實現為容器。在使用容器時,即將容器類模型例項化為容器類,會指明容器中存放的元素是什麼型別。容器可以分為兩大類 順序容器和關聯容器 順序容器有可變長動態陣列vector 雙端佇列deque 雙向鍊錶li...
不要在公共介面中傳遞STL容器
最近的乙個專案,是開發乙個framework,提供給公司內部不同的產品線使用。之間遇到的乙個問題,就是stl容器的使用,而結論是不要在公共介面中傳遞stl容器 也可以說,不要在暴露給客戶的標頭檔案中包含stl的標頭檔案。為什麼有這個結論,我們可以從幾個方面來論述 雖然,微軟這篇文章提到匯出vecto...
STL容器的選擇
標準stl序列容器 vector string deque和list。標準stl關聯容器 set multiset map和multimap。非標準序列容器slist和rope。slist是乙個單向鍊錶,rope本質上是乙個重型字串。繩子 rope 是重型的 線 string 明白了嗎?你可以找到乙...