对于柠檬图形库的shared_ptr分配的图表类型变量我这样做:
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);
也就是说,名字要求其默认构造函数图形对象。
对于声明一个shared_ptr吧,我这样做:
typedef ListDigraph::NodeMap<string> Node_names;
typedef std::shared_ptr<Node_names> Nname_pointer;
Nname_pointer name = new Node_names;
name(process);
我知道,对于名字的声明是错误的,但我怎么给它分配的内存以及与工艺对象初始化它。