下面的代码产生编译器错误C2784:
'bool std :: operator<(const std :: _ Tree< _Traits>&,const std :: _ Tree< _Traits>&)':无法推断'const std :: _ Tree< _Traits&gt的模板参数; &安培;”来自'const std :: _ Tree_iterator< _Mytree>'
代码有什么问题?提前谢谢了;我在该错误消息上找不到任何可以帮助我的帖子。
#include <map>
#include <set>
void main(){
int i=1;
std::map<int, int> A;
A[i]=i;
std::set<std::map<int, int>::iterator > setOfIts;
setOfIts.insert(A.begin());
}
答案 0 :(得分:0)
你所看到的是Visual Studio长期抱怨它没有办法比较你想放在集合中的迭代器,因为没有合适的operator <
。由于无法比较它们,因此无法确定两个迭代器是否具有相同的值,因此只有其中一个应该在集合中。
要解决此问题,您可以提供自己的操作员see example here。迭代器平等的含义取决于你... ...