Я новичок в использовании карт и мультиплексов, и у меня возникают проблемы (ошибки и предупреждения компилятора) при попытке вставить 3 значения в мультимап с помощью пара строк (действующих в качестве ключа) и целочисленное значение:C++ - Вставка трех значений переменных в мультимаг.
Это моя MultiMap декларация:
multimap<pair<string, string>, int> wordpairs;
Это, как я пытаюсь заполнить Multimap:
int toInsert = 0;
for (int i = 0; i < s; i++) {
wordpairs.insert((words[i], words[i+1]), toInsert);
}
где слова:
vector<string> words
Я получаю эту ошибку и кучу предупреждений:
error: no matching function for call to ‘std::multimap<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, int>::insert(std::__cxx11::basic_string<char>&, int&)’
wordpairs.insert((words[i], words[i+1]), toInsert);
^
Не знаю, как правильно вставить значения я хочу. :(
Это сработало! Спасибо!: D – RockAndaHardPlace
В этой ситуации emplace имеет больше смысла. – RyanP
Я получил немного менее подробный вариант с этим, хотя ему нужен C++ 11: 'wordpairs. emplace (std :: make_pair (слова [i], слова [i + 1]), toInsert); – Xirema