私はいくつかのグラフ構造(接尾辞ツリー)のクラスをコーディングする過程にあります。この困難なことに遭遇しました。その親、およびその息子へのポインタのセット。私はメモリでエラーを回避するためにスマートポインタを使用して、ここでの事であるのです。私はこの事のための用語があると思いTのメンバーは、テンプレート引数Tを持つテンプレートクラスのインスタンス化です
class node {
...
std::shared_ptr<node> parent;
...
};
を書きます。自己参照のように、または何でも。私がそれを書いたとき、私は自信を持っていました。エラーがありますが、それはうまくコンパイルされていませんでした。私は好奇心が強い、私はそれのようなものを書くことができます:
class some_class_2{
...
std::vector<some_class_2> some_vector;
std::string string_;
some_class() {
string_ = "lol";
some_vector = std::vector<some_class>(10);
}
};
この質問の答えははいと思われる。だから、私は正常にコンパイルされたテストプログラムを起動したが、もちろん止まらないかもしれない。多分私は十分ではなく、メモリ関連のエラーが出るはずだ。
これはC++でこのようなことをどのように処理すべきかということです。 C++で許可されていることが奇妙なのではないですか? some_classの中にstd :: shatre_ptrを置くのは普通ですか? some_class_2のようなエラーが回避され、 のグラフ構造を表現する最良の方法は何ですか?
ありがとう、本当にすべてを明確にしています。 – Bars
@Bars問題を解決した場合は、この回答を受け入れてください – Brian