multiset多重集合容器
阿新 • • 發佈:2018-12-03
multiset與set一樣,唯一的不同是:multiset允許重複元素的鍵值插入,而set不允許
同樣是set標頭檔案
multiset元素插入(輸入多個以後,輸出按照從小到大的順序)
#include <iostream> #include <set> #include <string> using namespace std; int main() { multiset<string> ms; ms.insert("abc"); ms.insert("123"); ms.insert("1a1"); ms.insert("aaa"); ms.insert("123"); ms.insert("1b0"); multiset<string>::iterator it; for(it=ms.begin();it!=ms.end();it++) { cout<<*it<<endl; } return 0; }
multiset元素刪除:可以使用clear()
#include <iostream> #include <set> #include <string> using namespace std; int main() { multiset<string> ms; ms.insert("abc"); ms.insert("123"); ms.insert("123"); ms.insert("1a1"); ms.insert("aaa"); ms.insert("123"); ms.insert("1b0"); multiset<string>::iterator it; for(it=ms.begin();it!=ms.end();it++) { cout<<*it<<endl; } int n=ms.erase("123");//刪除值為“123”的所有重複元素,返回刪除元素總數 cout<<n<<endl; for(it=ms.begin();it!=ms.end();it++)//輸出刪除後的元素 { cout<<*it<<endl; } return 0; }
查詢元素:使用find()方法查詢元素,找到返回該元素迭代器位置
(如果重複,返回第一個元素重複元素的迭代器位置)
如果沒有,返回end()迭代器位置
注:迭代器不能輸出位置,只能輸出內容
#include <iostream> #include <set> #include <string> using namespace std; int main() { multiset<string> ms; ms.insert("abc"); ms.insert("123"); ms.insert("123"); ms.insert("1a1"); ms.insert("aaa"); ms.insert("123"); ms.insert("1b0"); multiset<string>::iterator it; it=ms.find("123");//查詢鍵值“123” if(it!=ms.end()) { cout<<*it<<endl; } else { cout<<"not find it"<<endl; } it=ms.find("bbb"); if(it!=ms.end()) { cout<<*it<<endl; } else { cout<<"not find it"<<endl; } return 0; }