map_set的使用

map和set是红黑树的一层封装。不熟悉红黑树的请看上篇文章。

map的增删查改操作
代码示例:

#include <iostream>

#include <map>
#include <string>
using namespace std;

int main()
{
    map<string, string> m;
    //map插入操作的四种方式

    //1,pair<K,V>
    m.insert(pair<string, string>("abc", "123"));

    //2,make_pair
    m.insert(make_pair("dict", "字典"));
    m.insert(make_pair("sort", "排序"));
    m.insert(make_pair("heap", "堆"));
    m.insert(make_pair("tree", "树"));
    //3,value_type
    m.insert(map<string, string>::value_type("def", "456"));
    //4.调用operator[]
    m["gh"] = "789";

    //map的遍历,使用迭代器遍历
    map<string, string>::iterator it = m.begin();
    while (it != m.end())
    {
        cout << it->first << " " << it->second << endl;
        it++;
    }
    //map的删除

    while (!m.empty())
    {
        map<string, string>::iterator it2 = m.begin();
        cout << it2->first << " " << it2->second << endl;
        //通过迭代器删除
        m.erase(it2);
    }
    //指定key删除
    //m.earse("dict");
    system("pause");
    return 0;
}

set的增删查改

#include <iostream>
#include <set>

//#include "MapTest.h"
using namespace std;

int main()
{
    set<int> s;

    s.insert(1);
    s.insert(2);
    s.insert(3);
    s.insert(4);
    s.insert(5);
    //删除指定数据
    s.erase(2);
    set<int>::iterator it = s.begin();

    while (it != s.end())
    {
        cout << *it << endl;
        it++;
    }
    //while (!s.empty())
    //{
    //  set<int>::iterator it2 = s.begin();
    //  cout << *it2 << endl;
    //  循环每次删除第一个数据
    //  s.erase(it2);
    //}

    system("pause");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/liuxiaokai_liu/article/details/80284734