multiset多重集合容器
multiset与set一样,也是使用红黑树来组织元素数据的,唯一不同的是,multiset允许重复的元素键值插入,而set不允许。
multiset也需要声明头文件"#include <set>",由于它包含重复元素,所以,在插入元素,删除元素、查找元素上较set有差别。
- 元素插入:
#include <set> #include <iostream> using namespace std; int main(int argc,char* argv[]) { multiset<string> ms; ms.insert("abc"); ms.insert("123"); ms.insert("111"); ms.insert("aaa"); s.insert("123"); multiset<string>::iterator it;//定义前向迭代器 for(it=ms.begin();it!=ms.end();it++) cout<<*it<<" "; cout<<endl; return 0; } //运行结果: //111 //123 //123 //aaa //abc
- 元素删除:返回删除元素的个数
#include <set> #include <iostream> using namespace std; int main(int argc,char* argv[]) { multiset<string> ms; ms.insert("abc"); ms.insert("123"); ms.insert("111"); ms.insert("aaa"); s.insert("123"); multiset<string>::iterator it;//定义前向迭代器 for(it=ms.begin();it!=ms.end();it++) cout<<*it<<endl; //删除值为"123"的所有重复元素,返回删除元素总数2 int n=ms.erase("123"); cout<<"Total deleted : "<<n<<endl; //输出删除后的剩余元素 cout<<"all elements after deleted : "<<endl; for(it=ms.begin();it!=ms.end();it++) cout<<*it<<endl; return 0; } //运行结果: //111 //123 //123 //aaa //abc //Total deleted : 2 //all element after deleted : //111 //aaa //abc
- 查找元素及其他,与set相似