gpt4 book ai didi

c++ - map 键没有可行的重载 '=' 错误

转载 作者:太空狗 更新时间:2023-10-29 20:38:50 24 4
gpt4 key购买 nike

我在尝试执行以下操作时遇到此错误

Rellotge nclock(request, mclock);
if (oldclock < nclock) (iteratorValue[tasknum-1])->first = nclock;

iteratorValue是一个map字典,map的key和nclock是同一类型。

   Agenda.cc:65:70: error: no viable overloaded '='
if (oldclock < nclock) (iteratorValue[tasknum-1])->first = nclock;

最佳答案

std::map<Key, T> 中元素的类型字典是一对如下。

using value_type = std::pair<const Key, T>;

请注意,键是一个常量元素,不能更改,这是有原因的。

std::map is a sorted associative container that contains key-value pairs with unique keys. Keys are sorted by using the comparison function Compare. Search, removal, and insertion operations have logarithmic complexity. Maps are usually implemented as red-black trees

注意突出显示的点,它们是您无法更改字典键的原因的键。

  • 由于它是一个排序的容器,使用键对元素进行排序以加快查找速度,在任何时候更改键都会破坏容器,因为您最终会使所有排序无效。
  • 通过更改 key ,您可能会在容器不知情的情况下复制 key 元素,这会破坏唯一 key 保证。

如果您需要更改 key ,您可能希望从 map 上删除旧项目并使用新的所需 key 插入另一个项目。您可能想要交换与现有键关联的值元素。

关于c++ - map 键没有可行的重载 '=' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30269093/

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