【问题标题】:Transfer all elements from one list to another in deque C++在 deque C++ 中将所有元素从一个列表转移到另一个列表
【发布时间】:2013-11-02 01:16:38
【问题描述】:

我正在尝试构建一个函数,它将所有元素从一个列表转移到双端队列类中的另一个。例如,如果您有列表 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;            
}

【问题讨论】:

    标签: c++ merge deque


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢您的帮助
    猜你喜欢
    • 2018-09-03
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 2011-05-11
    相关资源
    最近更新 更多