C++ 如何使用boost图作为成员变量
我对boost图形库几乎是新手。 如何将C++ 如何使用boost图作为成员变量,c++,boost-graph,C++,Boost Graph,我对boost图形库几乎是新手。 如何将graph声明为成员变量 typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> Graph; class myclass{ private: Graph graph; void connect(const int N) { //
graph
声明为成员变量
typedef boost::adjacency_list<boost::vecS,
boost::vecS,
boost::undirectedS> Graph;
class myclass{
private:
Graph graph;
void connect(const int N)
{
// Graph graph(N); // make it local
// or
graph(N); //error
for (size_t i = 0; i < N; i++)
{
for (size_t j = i + 1; j < N; j++)
{
if (adj[i][j] != 0)
boost::add_edge(i, j, graph);
}
}
}
这是唯一的选择吗
这是无效的,因为graph
不可调用;并且不能在构造函数之外构造成员变量
您需要复制/移动并分配它,或者使用Graph
的任何成员函数来设置您需要的任何属性
我建议
图(N)代码>-->图形=图形(N)代码>?您已经将图形
定义为成员变量。您的错误出现在尝试操作成员变量的行上。很难说那条线应该是什么,因为你没有告诉我们那条线应该做什么;我在寻找一种有效的方法,在类内部构造它,而不是在外部构建它,然后将它传递给类
Graph graph(N);
myclass.set_params(graph);
graph(N); //error