【发布时间】:2017-11-27 19:06:35
【问题描述】:
我正在用 C++ 为我的有向图开发一个基本的 DFS 算法。
我得到的是一个 Vertex 类,它有一个 char 值和一个邻接列表。
鉴于此,我正在尝试按其值对对象列表(在我的情况下为顶点,但让我们说点别的)进行排序。
我的课是这样的:
class Foo {
private:
char x;
list<Foo*> listOfChildrenObject;
};
假设我们得到了 5 Foo 的对象。
A,B,C,D,E
现在,A 是我程序中每个对象的父亲。
假设我以这种方式插入它们:
A (the father), D, C, B, E
然后,我想按顺序打印它们:
A,B,C,D,E
为此,我想使用 listOfChildrenObject.sort() 来做到这一点。
有没有办法按 char 值对我的对象列表进行排序?
【问题讨论】:
-
为
Foo提供operator< -
@PasserBy 是
Foo*的列表。 -
指针有点复杂,但你只需要一个取消引用它们的谓词。 en.cppreference.com/w/cpp/container/list/sort
-
无论你使用什么容器都绝对没问题,只要确保它不是链表即可。稍后谢谢我。