尝试执行以下操作时出现此错误
Rellotge nclock(request, mclock);
if (oldclock < nclock) (iteratorValue[tasknum-1])->first = nclock;
iteratorValue是一个地图字典,地图的键与nclock的类型相同。
Agenda.cc:65:70: error: no viable overloaded '=' if (oldclock < nclock) (iteratorValue[tasknum-1])->first = nclock;
答案 0 :(得分:5)
std::map<Key, T>
字典中元素的类型如下所示。
using value_type = std::pair<const Key, T>;
注意,键是一个常量元素,它不能被改变,这是一个原因。
std :: map是已排序关联容器,其中包含具有唯一键的键值对。使用比较功能比较对键进行排序。搜索,删除和插入操作具有对数复杂性。地图通常实现为红黑树
注意突出显示的点,它们是您无法更改字典键的原因。
如果您需要更改密钥,您可能希望从地图上删除旧项目并使用新的所需密钥插入另一个项目。您可能希望交换与现有密钥关联的value元素。