尝试执行以下操作时出现此错误

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

iteratorValue是一个映射字典,映射的键与nclock的类型相同。

最佳答案

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

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

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



请注意突出显示的点,它们是您不能更改字典键的原因的键。
  • 因为它是一个已排序的容器,所以使用键对元素进行排序以加快查找速度,可以通过在任何时候更改键来破坏该容器,因为最终会使所有排序无效。
  • 通过更改密钥,您可能会在不了解容器的情况下复制密钥元素,这将破坏唯一密钥的保证。

  • 如果您需要更改密钥,则可能要删除 map 上的旧项目,然后使用所需的新密钥插入另一个项目。您可能想要交换与现有键关联的value元素。

    09-07 06:57