C++ 映射/集合迭代器不可递减是什么意思?如何制作map.rbegin()->;第一份工作?

C++ 映射/集合迭代器不可递减是什么意思?如何制作map.rbegin()->;第一份工作?,c++,reverse-iterator,C++,Reverse Iterator,我正在尝试获取映射图中的最后一个元素 map<long long, long long> ::reverse_iterator itr_rel = map_of_bit_to_parent.rbegin(); long long total_parent_rels = itr_rel->first; map::reverse_迭代器itr_rel=map_-of_-bit_-to_-parent.rbegin(); long long total\u parent\u rel

我正在尝试获取映射图中的最后一个元素

map<long long, long long> ::reverse_iterator itr_rel = map_of_bit_to_parent.rbegin();
long long total_parent_rels = itr_rel->first;
map::reverse_迭代器itr_rel=map_-of_-bit_-to_-parent.rbegin();
long long total\u parent\u rels=itr\u rel->first;
但分配本身导致运行时错误“映射/设置迭代器不可递减”

如何进行这样的赋值?

在通过迭代器访问数据之前,请始终测试迭代器的有效性

map<long long, long long> ::reverse_iterator itr_rel = map_of_bit_to_parent.rbegin();
long long total_parent_rels = 0;
if ( itr_rel != map_of_bit_to_parent.rend() )
{
   total_parent_rels = itr_rel->first;
}
map::reverse_迭代器itr_rel=map_-of_-bit_-to_-parent.rbegin();
长-长-长总计\u父项\u关系=0;
if(itr\u rel!=将\u位的\u映射到\u parent.rend())
{
总父关系=itr\U rel->first;
}

您确定地图不是空的吗?在尝试使用结束迭代器之前,请选中将位映射到父项。empty()。映射不为空。我已经初始化了它。已调试的already只需将rbegin()->首先(映射中的最后一个键)分配给变量total\u parent_rels@seno71625,当地图为空时会发生什么?