как использовать буст-граф в качестве переменной-члена - PullRequest
0 голосов
/ 26 октября 2019

Я почти новичок в библиотеке boost-graph. Как объявить 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);
myclass.set_params(graph);

Это единственный вариант?

1 Ответ

1 голос
/ 26 октября 2019
graph(N); //error

Это недействительно, поскольку graph не вызывается;и вы не можете создать переменную-член вне конструктора.

Вам нужно будет скопировать / переместить присвоить ее или использовать любые функции-члены Graph должен установить любые свойства, которые вам нужны.

Я предлагаю взять хорошую книгу по C ++ !

...