C++編譯器錯誤時,C++編譯的問題是:試圖插入一個地圖,我得到
line 27: Error: Could not find a match for
std::multimap<std::string, std::vector<std::string>,
std::less<std::string>,
std::allocator<std::pair<const std::string,
std::vector<std::string>>>>
::insert(std::pair<std::string, std::vector<std::string>>)
needed in main().
1 Error(s) detected.
下面是我的程序:
#include<iostream>
#include<sstream>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
typedef multimap<string, vector<string> > mos_map;
typedef multimap<string, vector<string> >::iterator mos_map_it;
int main()
{
mos_map mos;
mos_map_it it;
vector<string> v1;
v1.push_back("a");
v1.push_back("b");
v1.push_back("c");
v1.push_back("mo1");
std::string a(*(v1.end()-1));
mos.insert(std::pair< std::string, vector<std::string> >(a,v1));
//Is the above not the right way to to insert an element into the map?
return 0;
}
上面的代碼拋出一個編譯錯誤時我嘗試用一個字符串作爲key來插入一個向量作爲值。我在solaris上工作。
你忘了'的#include'。 –
即使添加了#include,我也得到了同樣的錯誤。 –
user1939168
你使用的是什麼編譯器? –