最小値と最大値を使用してリンクリストを作成しようとしています。これは本当に愚かなやり方かもしれませんし、私がやりたいことを達成するためにベクトルを使うべきかもしれません。C++でxとyの最小値と最大値の範囲を持つ単一リンクリストを作成する
私は本当に苦労しているのですが、なぜこれがうまくいかないのか分かりません。私はインターネットを注ぎ込み、私の本を見ましたが、何もこれを働かせていません。たぶん私はスマートポインタを使用していますので、それはだと私はここでそれらを使用していますが100%自信を持っていないよ、私のノードは次のとおりです。
struct Node
{
Node(int m = 0, int M = 0, std::shared_ptr<Node> r = nullptr) : min(m), max(M), right(r){}
std::shared_ptr<Node> right;
int min;
int max;
};
私はこれが正しく設定されていると考えているが、ここでは私の挿入機能があり、私は確かにこれは問題です。そして、それは私がここに失われた時に一種のよのstd :: shared_ptrの
std::shared_ptr<Node> Container::insert(std::shared_ptr<Node> list, int min, int max)
{
if(!list)
{
list = std::make_shared<Node>(min, max);
}
list->right = insert(list->right, min, max);
return list;
}
するかどうこれはあるいは、void関数であるべきかどうかはわからない、と多分私はちょうど問題を理解していませんよ十分に十分です。基本的には、最小値と最大値を比較できるようにしたいだけです。再び、私は問題に近づいているのは本当に悪い方法かもしれません。
あるべきと仮定すると、永遠に繰り返す? – Galik
STL実装を使用する場合は、 'std :: list>'のようになります。独自の実装を書くことは便利な演習ですが、STLコンテナを使って同じことを試してみてください。 –
Rerito
@Rerito、STLコンテナについて聞いたことはありませんが、それらを見なければなりませんどのように動作するかを確認してください。 – Sailanarmo