【发布时间】:2011-06-17 02:51:08
【问题描述】:
我在 C++ 中使用map。假设我在 map 中有 10 个值,而我只想要第一个。如何获得?
谢谢。
【问题讨论】:
我在 C++ 中使用map。假设我在 map 中有 10 个值,而我只想要第一个。如何获得?
谢谢。
【问题讨论】:
begin() 返回第一对,(准确地说,是第一对的迭代器,您可以访问该迭代器的 ->first 和 ->second 的键/值)
【讨论】:
地图不会保持插入顺序。使用*(myMap.begin()) 获取第一对的值(排序时键最小的那个)。
您也可以使用myMap.begin()->first 获取密钥,使用myMap.begin()->second 获取值。
【讨论】:
myMap.begin() 返回一个迭代器。你可能想检查stackoverflow.com/questions/388242/…
myMap.begin() 是一个迭代器,它重载了 * 和 -> 运算符以表现得像一个指针,并且重载了 ++ 和 -- 运算符以迭代地图中的元素。您应该阅读有关 STL 的介绍。也许有人为您提供了一个很好的链接?
*my_map.begin()。参见例如http://cplusplus.com/reference/stl/map/begin/.
【讨论】:
就这么简单:
your_map.begin()->first // key
your_map.begin()->second // value
【讨论】:
您可以使用地图模板的 begin() 方法返回的迭代器:
std::map<K,V> myMap;
std::pair<K,V> firstEntry = *myMap.begin()
但请记住,std::map 容器以有序的方式存储其内容。所以第一个条目并不总是第一个被添加的条目。
【讨论】: