【发布时间】:2018-02-01 15:14:42
【问题描述】:
//Works
cout << "map[0] value is " << doubleStatsMap.begin()->first<< endl;
//gives error
cout << "map[last value is " << doubleStatsMap.end()->first << endl;
我只是想获取地图最后一个元素的值。它可以正常工作 “map.begin->first” 但是给“map/set iterator not dereferencable” “map.end()->first”。 它不能为空,因为地图有一个开始,因此它有一个结束。我读过的所有内容都说这应该有效。任何建议都非常感谢!
【问题讨论】:
-
迭代器形成半开范围...请再次阅读迭代器文档。
-
您正在考虑
back(),它返回对最后一个元素的引用。 -
“我所阅读的所有内容都表明这应该有效。” 您应该获得更好的阅读材料或更仔细地阅读材料。
-
end()是最后一个元素的迭代器 - 你不能取消引用它;它没有指向一个有效的元素。
标签: c++ dictionary