STL泛型编程-multiset多重集合容器

来源:互联网 发布:mac怎么打开zip 编辑:程序博客网 时间:2024/05/16 12:31

multiset多重集合容器

    multiset与set一样,也是使用红黑树来组织元素数据的,唯一不同的是,multiset允许重复的元素键值插入,而set不允许。


    multiset也需要声明头文件"#include <set>",由于它包含重复元素,所以,在插入元素,删除元素、查找元素上较set有差别。

  1. 元素插入:
    #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

  2. 元素删除:返回删除元素的个数
    #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

  3. 查找元素及其他,与set相似


0 0
原创粉丝点击