【发布时间】:2017-11-03 06:47:49
【问题描述】:
编译这段代码时出现这个错误:
#include <map>
#include <set>
#include <iostream>
int main() {
using std::set;
using std::map;
set<int> s;
s.insert(4);
s.insert(3);
map<set<int>, int> myMap;
myMap.insert(make_pair(s, 8));
for (map<set<int>, int>::iterator it = myMap.begin(); it != myMap.end();
it++) {
std::cout << it->first << "->" << it->second << std::endl; // HERE
}
return 0;
}
错误来自标记为//HERE的行:
错误:无法将
std::ostream{akastd::basic_ostream<char>} 左值绑定到std::basic_ostream<char>&&
【问题讨论】:
-
你的map的key类型是set!?不应该反过来吗?
-
应该是数组、向量或集合
-
it->first是std::set<int>,并且没有流插入运算符。我没有解决方案,因为我不知道您要完成什么。 -
那我能做什么?
-
我在集合中有一些整数,或者它可以在数组或向量中,我想将其中一些映射到零,而将其中一些映射到 1
标签: c++