gpt4 book ai didi

c++ - 如何更改 map 中一对的值

转载 作者:太空宇宙 更新时间:2023-11-04 15:28:54 25 4
gpt4 key购买 nike

我能做到:

map<char*, int> counter;
++counter["apple"];

但是当我这样做的时候:

--counter["apple"] // when counter["apple"] ==2;

我在 VS 2008 中挂断了调试器。

有什么提示吗?

最佳答案

你依赖它的值(value)吗?字符串文字在不同的用途中不需要具有相同的地址(尤其是在不同的翻译单元中使用时)。所以你实际上可以通过这个创建两个值:

counter["apple"] = 1;
counter["apple"] = 1;

此外,您也无法进行任何排序,因为它是按地址排序的。使用 std::string它没有那个问题,因为它知道内容并且它的 operator<比较字典序:

map<std::string, int> counter;
counter["apple"] = 1;
assert(++counter["apple"] == 2);

关于c++ - 如何更改 map 中一对的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/886706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com