0

我正在为无向图的表示编写简单的类。在我的课堂上,我使用邻接表来表示图形。我想添加 API 方法,该方法返回指向某些可迭代物质的链接,其中包含与给定顶点相邻的顶点。

我对这种方法有以下想法。首先 - 创建动态分配std::vector并使用shared_ptr. 第二 - 用适当的顶点数填充向量并返回到该向量的链接。所以它的原型看起来像:

const std::vector<int>& adjacent(int vertex);

这是个好主意吗?我能做得更好吗?

问候,安东

4

1 回答 1

1

这个想法可能有效,但我强烈建议您反对。这将非常容易出错,而且这个函数定义对于许多查看它的程序员来说会看起来有问题。我建议您按值返回向量,并且在您真正需要它们之前不要考虑这种优化(即 - 您的应用程序很慢,并且您完全确定这是瓶颈)。如果要避免向量复制,可以通过引用将向量传递给此函数,以便将其填充到内部。

于 2013-06-28T13:48:06.700 回答