Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用boost图作为成员变量_C++_Boost Graph - Fatal编程技术网

C++ 如何使用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) { //

我对boost图形库几乎是新手。 如何将
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