在我的电脑上(Win7 32,VS2010 Ultimate)我想使用Qt Creator和Qt Visual Studio加入,两个LGPL版本.
在诺基亚网站上有minGW和VS2008版本的Qt框架,我没有找到VS 2010版本.
所以我安装了Qt 2010.05 SDK,并在VS 2010命令提示符下执行了以下步骤:
configure -static
nmake sub-src
Run Code Online (Sandbox Code Playgroud)
我检查了Qt Creator,它成功运行了.翻译完成后我安装了VS 2010添加我试图在路径中添加新的Qt版本
C:\Qt\2010.05\qt
Run Code Online (Sandbox Code Playgroud)
但是出现了以下错误消息:
给定路径中的Qt是使用minGW构建的
它不明白为什么因为翻译已经为VS2010执行了.
错误在哪里?如何正确安装?
我的优先级队列有问题:
std::priority_queue <NodePrio, std::vector<NodePrio>, sortNodesByPrio> PQ;
Run Code Online (Sandbox Code Playgroud)
哪里
struct NodePrio
{
Node *node;
double priority;
NodePrio() : node(NULL), priority(0) {}
NodePrio(Node *node_, double priority_) : node(node_), priority(priority_) {}
};
Run Code Online (Sandbox Code Playgroud)
和
class sortNodesByPrio
{
public:
bool operator () (const NodePrio &n1, const NodePrio &n2) const;
}
bool sortNodesByPrio::operator () (const NodePrio &n1, const NodePrio &n2) const
{
return n1.priority < n2.priority;
}
Run Code Online (Sandbox Code Playgroud)
经过反复推动新元素
PQ.push(NodePrio(node, distance));
Run Code Online (Sandbox Code Playgroud)
从任何时间点他们都没有排序(见下文)...我试图调试代码,比较器代码已反复执行...
Step1:
push (node, 55.33);
PQ:
[0] 55.33
Step2:
push (node, 105.91);
PQ:
[0] 105.91
[1] 55.33 …Run Code Online (Sandbox Code Playgroud)