ダブルリンクリストの移動コンストラクタを作成しようとしていますが、動作していません。誰かが私が間違っていることを見つけるのを助けることができますか?ここで リンクリストコンストラクタの移動
は私のクラスである:class SortedList {
struct Node {
T data_;
Node* next_;
Node* prev_;
Node(const T& data = T{}, Node* nx = nullptr, Node* pr = nullptr) {
data_ = data;
next_ = nx;
prev_ = pr;
}
};
Node* front_;
Node* back_;
int sizelist;
}
そして、ここに私の移動のコンストラクタです:あなたは、古いオブジェクトからのデータの所有権を取得し、古いオブジェクトに空のリストを作るべき
SortedList<T>::SortedList(SortedList&& rhs) {
if (&rhs != this) {
sizelist = rhs.sizelist;
front_ = rhs.front_;
back_ = rhs.back_;
Node* head = rhs.front_;
Node* headNext =rhs.front_->next_;
for (int i = 0; i < rhs.sizelist-1; i++) {
head = nullptr;
head = headNext;
headNext = headNext->next_;
}
rhs.sizelist = 0;
}
}
リンクされたリストのインスタンスを紙面に描き、移動割り当てに何をすべきかを描くことをお勧めします。 – juanchopanza
ユーザが提供するコンストラクタは、クラス定義で宣言する必要があります。 'T 'は' SortedList'で定義されていません。実際のコードを投稿してください –
「うまくいきません」というのは役に立つ問題の説明ではありません。より具体的にしてください。 – molbdnilo