【发布时间】:2024-04-17 02:15:02
【问题描述】:
我想知道是否有一种方法可以在不使用 lambda 函数的情况下获得提升图边缘的排序向量。
即我目前是这样排序的:
std::vector<Edge> edgs = ...;
std::sort(edgs.begin(),edgs.end(),
[&](const Edge& e1, const Edge& e2){
return g[e1].source < g[e2].source || (g[e1].source == g[e2].source && g[e1].target < g[e2].target);
});
g 是我们从中获取边的图,
struct EdgeProperties{
int weight;
int source;
int target;
};
typedef boost::adjacency_list<vecS,vecS,undirectedS,no_property,EdgeProperties> Graph;
typedef boost::graph_traits<Graph> Traits;
typedef Traits::vertex_descriptor Vertex;
typedef Traits::edge_descriptor Edge;
有效,但我不想使用 lambda 函数。有没有办法避免它们(仍然使用 std::sort)还是我坚持使用它们?
【问题讨论】:
-
std::sort文档给出了不涉及 lambda 的示例。
标签: c++ sorting boost graph lambda