C++-STL(6)-map-set -有序-增删改查

map<key,value> key 不同,value可同,有序。
set<key>            key不同 ,                       有序 。 用于整数去重排序最好不过了。不能改值。
代码亲测可行,自己MARK一下,也供大家参考。

map
 

void maptest()
{
    //1.定义 map<char, int> mymap;
    //2.插入insert pair<,>
    //3.得到大小 int nSize = mymap.size();
    //4.查找 iter=mymap.find()   输入key 返回iter
    //5.删除 int n=mymap.erase(key) 返1 成功;返0 不成功
    //6.删除全部 mymap.erase(mymap.begin(), mymap.end());
    //7.修改mymap['d']=4000;
    cout<<"map 增删改查 ******"<<endl;

    cout << "1定义 map<char, int> mymap;" << endl;
    cout << " 2插入insert pair<,>" << endl;
    map<char, int> mymap;
    mymap.insert(pair<char, int>('a', 100));
    mymap.insert(pair<char, int>('z', 200));
    mymap.insert(pair<char, int>('b', 300));
    mymap['d'] = 400;
    mymap.insert(map<char, int>::value_type('f', 500));
    map<char, int>::iterator iter;
    for (iter = mymap.begin(); iter != mymap.end(); iter++)
    {
        cout << iter->first << " " << iter->second << endl;
    }

    cout << " 3得到大小 int nSize = mymap.size();" << endl;
    int nSize = mymap.size();
    cout << nSize << endl;
    cout << "4.查找 iter=mymap.find(b)   输入key 返回iter" << endl;
      iter = mymap.find('b');
      cout << iter->first << " " << iter->second << endl;

    cout << "5.删除 int n=mymap.erase(key) 返1 成功;返0 不成功" << endl;
    int n = mymap.erase('b');
    cout << "删除后的返回值="<<n << endl;
    for (iter = mymap.begin(); iter != mymap.end(); iter++)
    {
        cout << iter->first << " " << iter->second << endl;
    }
    cout << "6.修改mymap['d']=4000;" << endl;
    mymap['d'] = 4000;
    cout << mymap['d'] << endl;

    cout << "7.删除全部 mymap.erase(mymap.begin(), mymap.end());" << endl;
     mymap.erase(mymap.begin(), mymap.end());
      nSize = mymap.size();
     cout << "删除全部后map的长度"<<nSize << endl;

}

set
 

void settest()
{
    //1.定义 set<int> myset;
    //2.插入insert <key>
    //3.得到大小 int nSize = myset.size();
    //4.查找 iter=myset.find(key)   输入key 返回iter
    //5.定位 iter=lower_bound(key)  <=key 返回iter
    //  定位 iter = upper_bound(key) >=key 返回iter
    //6.删除 int n=myset.erase(key) 返1 成功;返0 不成功
    // 删除全部 mymap.clear();

        cout << "1.定义 set<char, int> myset;" << endl;
        set<int> myset;
        myset.insert(1);
        myset.insert(2);
        myset.insert(10);
        myset.insert(100);
        myset.insert(4);
        myset.insert(8);
        myset.insert(9);
        cout << "2.插入insert <key>" << endl;
        set<int>::iterator iter;
        for (iter = myset.begin(); iter != myset.end(); iter++)
        {
            cout << *iter << endl;
        }
        cout << "auto 类型遍历" << endl;
        for (auto iter1 = myset.begin(); iter1 != myset.end(); iter1++)
        {
            cout << *iter1 << endl;
        }

        cout << "3.得到大小 int nSize = myset.size();" << myset.size() << endl;
        cout << "4.查找 iter=myset.find(key)   输入key 返回iter"   <<endl;
              iter = myset.find(100);
              cout << *iter << endl;

        cout << "5.定位 iter=lower_bound(key)  <=key 返回iter  第一个" << endl;
        iter = myset.lower_bound(100);
        cout << *iter << endl;
        cout << "6  定位 iter = upper_bound(key) >=key 返回iter 第一个" << endl;
        iter = myset.upper_bound(10);
        cout << *iter << endl;
        cout << "6.删除 int n=myset.erase(key) 返1 成功;返0 不成功" << endl;
        cout << "int n="<<myset.erase(8) << endl;
        for (auto iter1 = myset.begin(); iter1 != myset.end(); iter1++)
        {
            cout << *iter1 << endl;
        }
        cout << " 删除全部 myset.clear();" << endl;
        myset.clear();
        cout << "删除后大小 int nSize = myset.size();" << myset.size() << endl;

}

 

原文链接: https://www.cnblogs.com/jasmineTang/p/14369308.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++-STL(6)-map-set -有序-增删改查

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/327472

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午4:17
下一篇 2023年3月1日 下午4:17

相关推荐