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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值