首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在c++11和c++17中插入地图的方法?

在C++11和C++17中,插入地图(std::map)的方法主要有两种:使用下标操作符(operator[])和使用成员函数insert()

使用下标操作符(operator[]

下标操作符用于访问或插入元素到std::map中。如果键不存在,它会创建一个新的元素并初始化。

代码语言:txt
复制
#include <iostream>
#include <map>

int main() {
    std::map<std::string, int> myMap;

    // 插入元素
    myMap["apple"] = 1;
    myMap["banana"] = 2;

    // 访问元素
    std::cout << "apple: " << myMap["apple"] << std::endl;
    std::cout << "banana: " << myMap["banana"] << std::endl;

    return 0;
}

使用成员函数insert()

insert()函数用于插入元素到std::map中,如果键已经存在,则不会插入。

代码语言:txt
复制
#include <iostream>
#include <map>

int main() {
    std::map<std::string, int> myMap;

    // 插入元素
    auto result = myMap.insert(std::make_pair("apple", 1));
    if (result.second) {
        std::cout << "Inserted apple: " << result.first->second << std::endl;
    }

    result = myMap.insert(std::make_pair("apple", 2));
    if (!result.second) {
        std::cout << "apple already exists with value: " << result.first->second << std::endl;
    }

    return 0;
}

类型

  • std::map:键值对的集合,键是唯一的,且按键排序。

应用场景

  • 当需要按键排序并快速查找、插入和删除元素时,std::map是一个很好的选择。
  • 例如,实现一个简单的电话簿系统,按键是姓名,值是电话号码。

常见问题及解决方法

问题:插入元素时键已经存在,如何处理?

使用insert()函数时,如果键已经存在,插入操作会失败,insert()函数返回的pair对象的第二个元素为false

代码语言:txt
复制
auto result = myMap.insert(std::make_pair("apple", 2));
if (!result.second) {
    std::cout << "apple already exists with value: " << result.first->second << std::endl;
}

问题:如何更新已存在的键的值?

使用下标操作符operator[]可以直接更新已存在的键的值。

代码语言:txt
复制
myMap["apple"] = 3; // 更新已存在的键的值

参考链接

希望这些信息对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券