だから、私はベクトルのグラフを作ろうとしています。問題は、ベクトルのサイズがわからないということです。それは入力として自分に与えられます。私はそのようにノードを作ることを考えていました:
typedef struct node{
my_vector v[];
node * next;
}
行のようにベクトルでノードを作成できますmy_vector v[];
か?私はC++に本当に慣れていません
また、グラフの実装方法はよくわかりませんが、リストの実装とは違いますか?
あなたはこれを行うことができます:
template<typename T>
struct node{
std::vector<T> v;
node * next;
}
node
これで、次のように、任意のタイプのデータを含むを作成できます。
node<int> myintnode;
node<double> mydoublenode;
my_vector v []のように、ベクトルを使用してノードを作成できますか。
実行時にベクトルサイズを決定する必要がある場合、この種の宣言は使用できません。自分でメモリを割り当てる必要があります。さらに良いのは、を使用することstd::vector
です。
また、グラフの実装方法はよくわかりませんが、リストの実装とは違いますか?
リストは非常に単純なグラフであるため、理論上の類似点がいくつかあります。実際には、実装は異なり、グラフで何をするかによって異なります。グラフを実装する方法はたくさんあり、主題を扱っている本や図書館もたくさんあります。単純なグラフ実装のためのデータ構造の紹介を検討することを提案します。たとえば、隣接リストと隣接行列は、最も一般的なグラフ表現の一部です。Boostにはグラフライブラリもありますが、それはおそらくやり過ぎでしょう。