【发布时间】:2016-12-25 23:18:18
【问题描述】:
将 unordered_map 用于 <int, vector<vector<int>>> 这样的对类型是否合法? Visual Studio 在第 16 行警告我“没有函数模板实例”std::make_pair 与参数列表匹配”(map.insert(make_pair<int, vector<vector<int>>>(i + m, tt))):
void test(vector<int>& nums)
{
unordered_map<int, vector<vector<int>>> map;
unordered_map<int, unordered_set<int>> map2;
vector<vector<int>> results;
for (int i = 0; i < nums.size(); i++)
{
for (int m = i + 1; m < nums.size(); m++)
{
if (!map.count(i + m))
{
vector<int> t{ i, m };
vector<vector<int>> tt;
tt.push_back(t);
map.insert(make_pair<int, vector<vector<int>>>(i + m, tt));
map2.insert(make_pair<int, unordered_set<int>>(i + m, unordered_set<int>(i - m)));
}
else if (map2.at(i + m).count(i - m) || map2.at(i + m).count(m - i))
{
continue;
}
else
{
map.at(i + m).push_back(vector<int>{i, m});
map2.at(i + m).insert(i - m);
}
}
}
}
【问题讨论】:
标签: c++ c++11 unordered-map