/* set/multiset容器
* set/multiset屬于關聯(lián)容器枢冤,底層結構是用二叉樹實現昵时,所有元素都會在插入時自動排序.
*
* set和multiset的區(qū)別:
* - set不允許容器中有重復元素;
* - multiset允許容器中有重復元素壁查;
*
* 構造函數:
* - `set<T> st;`,默認構造函數;
* - `set(const set &st);`援奢,拷貝構造函數憎茂;
*
* 賦值:
* - `set& operator=(const set &st);`珍语,重載等號運算符.
*
* 大小和交換:
* - `size();`,返回容器中元素的數量竖幔;
* - `empty();`板乙,判斷容器是否為空;
* - `swap();`,交換兩個容器集合.
*
* 插入與刪除:
* - `insert(elem);`募逞,在set中插入數據蛋铆;對于set,返回pair(set<T>::iterator, bool)放接,若bool為true則表明插入成功刺啦,若是插入重復元素則會返回false;
* 而對于multiset纠脾,則是返回set<T>::iterator.
* - `clear();`玛瘸,清除所有數據;
* - `erase(iterator_pos);`苟蹈,刪除pos迭代器所指的元素糊渊,返回下一個元素的迭代器;
* - `erase(iterator_beg, iterator_end);`慧脱,刪除區(qū)間[beg, end)中的所有元素渺绒,返回下一個元素的迭代器;
* - `erase(elem);`磷瘤,刪除容器中值為elem的元素.
*
* 查找和統(tǒng)計:
* - `find(key);`芒篷,查找key是否存在,若存在采缚,返回該鍵的元素的迭代器针炉,若不存在,則返回set.end();
* - `count(key);`扳抽,統(tǒng)計key的元素個數篡帕;對于set而言,count結果只有0和1(set元素不重復)贸呢,而對于multiset而言則是返回key的計數镰烧。
*
*
* pair對組:成對出現的數據,利用對組可以返回兩個數據.
* 創(chuàng)建方式:
* - `pair<type1, type2> p(val1, val2);`楞陷;
* - `pair<type1, type2> p = make_pair(val1, val2);`怔鳖。
*
* pair對組數據訪問:p.first返回第一個元素val1,p.second返回第二個元素val2.
*
*
* 利用仿函數可以改變set容器的排序方式:
* - `set<type, myCompare> s;`, 在聲明set時傳入一個仿函數myCompare固蛾,myCompare中指定了如何進行排序.
*
* 注:set中存放自定義數據類型時必須定義一個排序的仿函數结执,不然編譯器不知道怎么對自定義數據類型進行排序.
*/
黑馬C++視頻筆記《STL之set/multiset》
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門犀斋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人情连,你說我怎么就攤上這事闪水。” “怎么了蒙具?”我有些...
- 正文 為了忘掉前任篱昔,我火速辦了婚禮,結果婚禮上始腾,老公的妹妹穿的比我還像新娘州刽。我一直安慰自己,他們只是感情好浪箭,可當我...
- 文/花漫 我一把揭開白布穗椅。 她就那樣靜靜地躺著,像睡著了一般奶栖。 火紅的嫁衣襯著肌膚如雪匹表。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼设江,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了温数?” 一聲冷哼從身側響起绣硝,我...
- 正文 年R本政府宣布瓢棒,位于F島的核電站,受9級特大地震影響丘喻,放射性物質發(fā)生泄漏脯宿。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一泉粉、第九天 我趴在偏房一處隱蔽的房頂上張望连霉。 院中可真熱鬧,春花似錦嗡靡、人聲如沸跺撼。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽歉井。三九已至,卻和暖如春点骑,著一層夾襖步出監(jiān)牢的瞬間酣难,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 需要注意的是vector的erase函數尾膊,調用erase()函數后,vector后面的元素會向前移位荞彼,形成新的容器...