【发布时间】:2013-06-19 11:05:16
【问题描述】:
为了将 shared_ptr 分配给柠檬图形库中的 Graph 类型变量,我这样做了:
typedef ListDigraph Graph;
typedef std::shared_ptr<Graph> Process_pointer;
Process_pointer process(new Graph);
它工作正常,但现在我需要为地图对象声明一个 shared_ptr,通常地图对象是这样工作的:
Graph process;
typedef ListDigraph::NodeMap<string> Node_names;
Node_names name(process);
也就是说,name 的默认构造函数需要一个 Graph 对象。
为了为它声明一个 shared_ptr,我这样做了:
typedef ListDigraph::NodeMap<string> Node_names;
typedef std::shared_ptr<Node_names> Nname_pointer;
Nname_pointer name = new Node_names;
name(process);
我知道,name 的声明是错误的,但是我如何为其分配内存以及使用进程对象对其进行初始化。
【问题讨论】:
-
你的意思是像
std::make_shared?
标签: c++ shared-ptr lemon-graph-library