为什么std :: map :: insert文档引用的键参数不存在

时间:2018-11-15 23:42:52

标签: c++ stl

我正在查看std::map::insert的文档。

带有“提示”的函数签名定义如下。...

with hint (2)   
iterator insert (const_iterator position, const value_type& val);
template <class P> iterator insert (const_iterator position, P&& val);

然后对该插入的特定实现的返回值的后续描述如下...

  

带有提示(2)的版本返回一个迭代器,该迭代器指向   新插入的元素或已具有   地图中的等效键。

但这没有任何意义,因为我从未提供过键作为此函数的参数,而只是提供了一个值。

那它到底会返回什么?

1 个答案:

答案 0 :(得分:2)

您的密钥是您传递给value_type的价值的一部分。

您可以像下面那样传递值,其中“ 1”是键,“ 100”是值。

std::pair<int,int>(1,100)

 std::make_pair(1, 100)

示例:

std::map<int, int> testmap;

testmap.insert(testmap.begin(),std::make_pair(1, 100));
testmap.insert(testmap.begin(),std::pair<int,int>(2, 100));