我不熟悉map和multimaps的使用,並且在嘗試通過使用a圖插入3個值到multimap時遇到問題(編譯器錯誤和警告)對字符串(作爲鍵)和一個int值:C++ - 將3個變量值插入到多圖中
這是我的多重映射聲明:
multimap<pair<string, string>, int> wordpairs;
這是我正在努力填充多重映射:
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(words [i],words [i + 1]),toInsert);' – Xirema