温馨提示×

c++ map中的key如何修改

c++
小亿
262
2023-12-22 21:03:17
栏目: 编程语言

在C++中,map的key是不允许被修改的,因为map的key是用来进行查找和排序的关键字,如果修改了key,就会导致元素在map中的位置发生改变,从而破坏了map的有序性和稳定性。

如果需要修改map中的元素,可以通过删除原有的元素,并插入一个新的元素来实现。可以使用map的erase()函数来删除指定的元素,然后使用insert()函数插入新的元素。

下面是一个示例代码:

#include <iostream>
#include <map>

int main() {
    std::map<int, std::string> myMap;
    myMap[1] = "apple";
    myMap[2] = "banana";
    myMap[3] = "cherry";

    // 修改元素
    std::map<int, std::string>::iterator it = myMap.find(2);
    if (it != myMap.end()) {
        myMap.erase(it);
        myMap.insert(std::make_pair(2, "orange"));
    }

    // 输出修改后的map
    for (const auto& pair : myMap) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    return 0;
}

输出结果为:

1: apple
2: orange
3: cherry

可以看到,我们通过删除key为2的元素,然后插入一个新的元素来实现了对map中的key进行修改。

0