Почему документы std :: map :: insert ссылаются на несуществующий ключевой аргумент - PullRequest
0 голосов
/ 16 ноября 2018

Я просматриваю документы для 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 голосов
/ 16 ноября 2018

Ваш ключ является частью значения, которое вы передаете 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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...