30
A
回答
81
结束:
m.rbegin();
Maps(和套)进行排序,所以第一个元素是最小的,而最后一个元素是最大的。默认情况下,地图使用std::less
,但您可以切换比较器,这当然会改变最大元素的位置。 (例如,使用std::greater
将其放置在begin()
。
记住rbegin
返回迭代器。要获得实际的键,使用m.rbegin()->first
。您可能包起来变成了清晰的功能,但我的“M如果不相信这是值得的:
template <typename T>
inline const typename T::key_type& last_key(const T& pMap)
{
return pMap.rbegin()->first;
}
typedef std::map</* types */> map_type;
map_type myMap;
// populate
map_type::key_type k = last_key(myMap);
11
在一个std ::地图条目的排序,所以对于一个std ::地图米(假设m.empty()
是假的),你可以轻松地获得最大的关键:(--m.end())->first
0
A s std :: map是一个可以很容易地找到最大或最小键的联合数组。由于比较功能较少(<),所以最大的关键字将是地图中的最后一个元素。同样,如果有人有不同的要求,任何人都可以在声明map时修改比较函数。
的std ::地图<键,值,比较<键,值>>
默认情况下比较=标准::少
相关问题
- 1. 在C++中std :: map键
- 2. C++ std :: map,键的旋转
- 3. std :: size和std :: map的最大尺寸?
- 4. std :: map中的最后一个键
- 5. std :: map键最快的类型?
- 6. 将std :: map复制到C++的std :: set
- 7. std :: map插入或std :: map查找?
- 8. 的Javascript $ .MAP()Math.Max.Appy()找到最大高度
- 9. C++从std :: multimap中找到多个键
- 10. std map复合键
- 11. 何时选择关键值数据的std :: map over std :: map?
- 12. 如何在Objective-C++中使用NSString作为键std :: map
- 13. 如何插入到std :: map?
- 14. std :: map performance C++
- 15. 使用多个键值为std :: map C++
- 16. C++ std :: map键排序比较函数?
- 17. C++ std :: map类与通用键
- 18. std :: map - 如何更改键排序?
- 19. 使用std :: string作为std :: map的键
- 20. C版本的C++ std :: map
- 21. 最小化锁争用C++ std :: map
- 22. C++ std :: wstring std :: string - 快速和脏转换用作std :: map中的键
- 23. 如何在C中找到数组中最大的位置C
- 24. 在C++中继承std :: pair和std :: map
- 25. 锁定std :: map C++
- 26. 为什么这个std :: map键找不到?
- 27. 替换std :: map中的一个键
- 28. 使用char *作为std :: map中的键
- 29. Std :: map \ std :: set包含重复键
- 30. C++ Map []找不到
+1在一个优雅的方式的最后一个元素返回! – AraK 2009-11-02 09:32:51
这会产生最后一个元素的迭代器,但不会生成密钥。也许你应该调整它,以便它读取'm.rbegin() - >第一'',这样你就可以得到密钥。 – 2009-11-02 14:37:28
也可能值得检查空地图。 – user2672165 2014-11-05 07:35:18