我有下面的错误代码,我试图在 VC2010中编译,但我得到的错误 C2974,这只有在我包含 lambda 表达式时才会发生,所以我猜它与此有关。
typedef pair<pair<int, int>, int> adjlist_edge;
priority_queue< adjlist_edge , vector<adjlist_edge>,
[](adjlist_edge a, adjlist_edge b) -> bool {
if(a.second > b.second){ return true; } else { return false; }
}> adjlist_pq;
我知道模板定义的形式是正确的
priority_queue<int , vector<int>, greater<int>> pq;
果然有效。知道我哪里做错了吗?Lambda 是不是有什么明显的问题我可能忽略了?感谢您的阅读!