我正在执行一个图表结构,以便在C++中找到道路算法。
当新edge子或 no子出现时,它储存在一个单独的病媒中,供图表级的脱轨器随后删除。 我之所以使用点,是因为它们提供了方便的图表导航;我可以简单地比较其地址,或者我可以通过创建点人媒介,然后直接利用这些点人通过图表浏览,从而形成一条路。
struct Edge
{
Node* from;
Node* to;
}
struct Node
{
Data data;
std::vector<Edge*> outEdges;
std::vector<Edge*> inEdges;
}
我读过一些文章,介绍点人是坏的,应当避免或替换为智能点人(但甚至应当避免)。 或者说,良好的方案者根本不使用(除例外情况外)。 我的理解是,它们是传闻的来源、安全风险以及整体上难以正确管理(特别是在多面应用中)。
我的问题: 本案中的点名办法?
Edit 1: There are questions where did i read about pointers (smart) should be avoided. https://softwareengineering.stackexchange.com/questions/56935/why-are-pointers-not-recommended-when-coding-with-c/163279#163279
在答复的第二部分:
- "Most uses of pointers in C++ are unnecessary."
- "...modern C++ idioms often don’t need pointers at all..."
- "For somebody who knows modern C++, it’s clear that you very rarely need any pointers (either smart or raw; except when using them as iterators)."