c++ - 在双端队列 C++ 中将所有元素从一个列表传输到另一个列表

标签 c++ merge deque

我正在尝试构建一个函数,它将所有元素从一个列表转移到双端队列类中的另一个列表。例如,如果您有列表 1 {1,2,3} 和列表 2 {4,5}。我要做的是将列表 2 中的所有元素转移到列表 1 中,使其成为列表 1 {1,2,3,4,5}(不需要有序),之后列表 2 将为空。但是,我得到的结果列表根本不正确....请问我的代码有什么问题吗?谢谢

void meld(Deque<E>& other)
{

    DNode<E>* a = _head;
    DNode<E>* b = _tail;
    DNode<E>* c = other.get_head();
    DNode<E>* d = other.get_tail();
    DNode<E>* temp = c;
    b->set_next(temp);
    temp->set_prev(b);
    _size += other.size();
    c = nullptr;            
}

最佳答案

您可能需要将other 的内容设置为空。您发布的代码只是将 c 设置为 null 但 c 无论如何都是一个即将超出范围的局部变量。您可能需要更改 other._head = 0

请注意,您的代码不必要地设置了 ad。同样,temp 并不是真正需要的:您可以只使用 c 代替。

关于c++ - 在双端队列 C++ 中将所有元素从一个列表传输到另一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19737930/

相关文章:

c++ - RegQueryValueEx 给出奇怪的数据

c++ - 如何将模板化类作为默认模板类型传递给自己的类?

java - 向 LinkedBlockingDeque 客户端发出信号停止消费的最佳方式是什么?

C++ 值初始化 vector 迭代器比较

c++ - Dynamic_Cast vector 元素

git - Mercurial 和 bzr 的 merge 基础模拟(为 merge 找到尽可能共同的祖先)?

python - 使用来自另一个数据框的合并填充 na 值

python - Pandas 在最近的时间戳上合并数据帧

c++ - 在双向链表中搜索

python - 如何切片双端队列?