0
点赞
收藏
分享

微信扫一扫

C++之map

狗啃月亮_Rachel 2024-06-03 阅读 10
c++

1、标准库的map类型

2、插入数据

#include <map>
#include <string>
#include <iostream>

using namespace std;

int main() {
    map<string, int> mapTest;
    // 插入到map容器内部的元素是默认按照key从小到大来排序
    // key类型一定要重载小于号<运算符
    mapTest["aaa"] = 100;  // int& operator[](const string& index);
    mapTest["eee"] = 500;  // 可以重新赋值,但是下面的用insert方法就不能重新赋值
    mapTest.insert(map<string, int>::value_type("bbb", 200));
    mapTest.insert(map<string, int>::value_type("bbb", 2000));
    mapTest.insert(pair<string, int>("ccc", 300));
    mapTest.insert(pair<string, int>("ccc", 3000));
    mapTest.insert(make_pair("ddd", 400));
    mapTest.insert(make_pair("ddd", 4000));

    map<string, int>::const_iterator it;
    for (it = mapTest.begin(); it != mapTest.end(); ++it)
    {
        cout << it->first << " " << it->second << endl;
    }

    return 0;
}

// 输出
aaa 100
bbb 200
ccc 300
ddd 400
eee 500

3、查找与修改

#include <map>
#include <string>
#include <iostream>

using namespace std;

int main() {
    map<string, int> mapTest;

    mapTest["aaa"] = 100;  // int& operator[](const string& index);
    mapTest.insert(map<string, int>::value_type("bbb", 200));
    mapTest.insert(pair<string, int>("ccc", 300));
    mapTest.insert(make_pair("ddd", 400));

    int n = mapTest["bbbc"];  // 这边如果找不到ket的值,还是会返回0,这样就不能判断有没有找到。所以得用限免的方式去查找
    cout << n << endl;
    mapTest["bbb"] = 2000;

    map<string, int>::iterator it;
    it = mapTest.find("ccc");
    if (it != mapTest.end())
    {
        it->second = 3000;
    }
    else
    {
        cout << "not found" << endl;
    }

//    map<string, int>::const_iterator it;
    for (it = mapTest.begin(); it != mapTest.end(); ++it)
    {
        cout << it->first << " " << it->second << endl;
    }
    return 0;
}

// 输出
0
aaa 100
bbb 2000
bbbc 0
ccc 3000
ddd 400

4、删除

#include <map>
#include <string>
#include <iostream>

using namespace std;

int main() {
    map<string, int> mapTest;
    // 插入到map容器内部的元素是默认按照key从小到大来排序
    // key类型一定要重载小于号<运算符
    mapTest["aaa"] = 100;  // int& operator[](const string& index);
    mapTest.insert(map<string, int>::value_type("bbb", 200));
    mapTest.insert(pair<string, int>("ccc", 300));
    mapTest.insert(make_pair("ddd", 400));

    mapTest.erase("bbb");
    map<string, int>::const_iterator it;
    it = mapTest.find("ccc");
    if (it != mapTest.end())
    {
        mapTest.erase(it);
    }
    for (it = mapTest.begin(); it != mapTest.end(); ++it)
    {
        cout << it->first << " " << it->second << endl;
    }
    return 0;
}

// 输出
aaa 100
ddd 400

举报

相关推荐

0 条评论