//Works
cout << "map[0] value is " << doubleStatsMap.begin()->first<< endl;
//gives error
cout << "map[last value is " << doubleStatsMap.end()->first << endl;
我只是想获取地图最后一个元素的值。它正常工作 &#34; map.begin-&gt;首先&#34; 但是给出了#34; map / set iterator而不是dereferencable&#34;为了 &#34; map.end() - &gt;首先&#34 ;. 它不能为空,因为地图有一个开头因此它有一个结束。我读过的所有内容都说这应该有效。任何建议都非常感谢!
答案 0 :(得分:2)
尝试从 end 迭代器获取任何内容会导致未定义的行为。
要获取最后一项,您可以使用std::map::rbegin()
。
// cout << "map[last value is " << doubleStatsMap.end()->first << endl;
cout << "map[last value is " << doubleStatsMap.rbegin()->first << endl;