- C/C++ code
#include <QtCore>struct node{ int cx, cy; bool operator < (const node &b) const { return cx < b.cx; }};int main(int argc, char *argv[]){ QCoreApplication app(argc, argv); QSet<node> ss; QSet<node>::iterator iter; node temp; int i, j; for(i=0,j=100;i<101;i++,j--) { temp.cx = i; temp.cy = j; ss.insert(temp); } for(iter=ss.begin();iter!=ss.end();++iter) qDebug() << iter->cx << " " << iter->cy; return 0;}
问一下大家,这是一个很简单的程序,但是通不过编译,
到底是哪里错了呢?应该怎么样改正?
------解决方案--------------------
QSet是基于哈希算法的,这就要求你提供:
1. bool operator == (const node &b) const
2. 一个全局的uint qHash(node key)函数