C++ 无序地图C和x2B+;
我用的是无序的地图C++ 无序地图C和x2B+;,c++,stl,C++,Stl,我用的是无序的地图 unorderedmap.insert(make_pair(5, 6)); 如何获取键位置的迭代器(值5)?我是否需要再次使用find(),或者如何从返回值中获取它 谢谢。假设您正在使用,迭代器是: unorderedmap.insert(make_pair(5, 6)).first; 这是从 如前所述,使用pair::first获取迭代器 第一个版本返回一对,带有 其成员对::首先设置为 迭代器,指向新的 插入元素或将其添加到元素 这已经有了同样的价值 地图中的第二个元
unorderedmap.insert(make_pair(5, 6));
如何获取键位置的迭代器(值5)?我是否需要再次使用find(),或者如何从返回值中获取它
谢谢。假设您正在使用,迭代器是:
unorderedmap.insert(make_pair(5, 6)).first;
这是从
如前所述,使用pair::first获取迭代器
第一个版本返回一对,带有
其成员对::首先设置为
迭代器,指向新的
插入元素或将其添加到元素
这已经有了同样的价值
地图中的第二个元素
如果有新元素,则将pair设置为true
如果是元素,则为插入或false
具有相同的价值存在
首先,
unordered_map
不是标准容器。但是,如果您使用的是编译器提供的无序映射
,它提供了类似的API,那么它将返回一对
。该对的迭代器
部分可以使用进行访问。首先
将给出插入元素的位置(如果插入成功,可以使用bool第二个
进行测试).无序映射接口类似于设置接口或映射接口,因为插入方法返回一个std::pair
:
- 如果插入发生,则
为真;如果容器中已存在具有类似键的元素,则不会发生插入bool
指向右侧元素:根据具体情况,可以是已经存在的元素,也可以是新插入的元素迭代器
map.insert(std::make_pair(key,value)).first
但是,请检查您是否不需要知道插入是否成功,通常情况下,您会关心它:)
。第二个
会告诉您插入是否成功。这是C++0x中的标准,尚未正式发布,但大多数新编译器已经开始实现它。@Gorpik,@DeadMG:因为问题标记为STL,也许提问者“应该”使用hash\u map
。仍然有相同的插入功能。啊,我想他指的是地图。我学到了一些新东西,谢谢。现在来看看两者之间的区别:)