Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
列表L合并到self 我目前正在处理我的C++程序,它与链表一起工作,我完全不知道“列表L和自己合并”是什么意思。我以前对链表很了解,从来没有将链表合并到自己的链表中_C++ - Fatal编程技术网

列表L合并到self 我目前正在处理我的C++程序,它与链表一起工作,我完全不知道“列表L和自己合并”是什么意思。我以前对链表很了解,从来没有将链表合并到自己的链表中

列表L合并到self 我目前正在处理我的C++程序,它与链表一起工作,我完全不知道“列表L和自己合并”是什么意思。我以前对链表很了解,从来没有将链表合并到自己的链表中,c++,C++,这是我的格式 // pre: none // post: list l is merged to self. void LinkedList :: merge(const LinkedList& l){ Node * lstCpy = NULL; Node * head = NULL; // copy list1 into lstCpy Node * cur = l; while (cur != NULL) { if

这是我的格式

// pre: none
  // post: list l is merged to self.
  void LinkedList :: merge(const LinkedList& l){


    Node * lstCpy = NULL;
    Node * head = NULL;

    // copy list1 into lstCpy
    Node * cur = l;
    while (cur != NULL) {

        if (head == NULL) {
            lstCpy = new Node;
            head = lstCpy;
        }
        lstCpy->next = new Node;
        lstCpy = lstCpy->next;
        cur = cur->next;
    }
}

我不知道您的实际任务是什么,但是使用给定的预定义签名实现
merge()
函数将意味着您检查列表是否应该与其自身合并(在这种情况下不执行任何操作)


在对当前实例执行任何(不必要的)操作之前,检查
if(this!=&rhs)
的上述条件模式被广泛使用,例如用于执行分配操作

LinkedList& LinkedList:operator=(const LinkedList& rhs) {
    if(this != &rhs) {
        // assign individual class member values from rhs
    }
    return *this;
}
检查此条件的关键是,避免任何不必要的操作,这些操作会使当前实例保持相同的状态

将列表与自身合并不需要任何操作,因为该操作非常简单。因此,您只需在第一位检查不在同一实例上操作,就可以跳过这种不必要的操作



post条件并不意味着将
列表1
合并到self,其中self表示您当前的类实例(
this
)。关于不将同一实例合并到自身的规则仍然适用。

“我完全不知道“列表L与自身合并”是什么意思。”“老实说,我也不知道。这是我的post条件。”。。就像她期望的那样,类似于将一个列表与自身合并(检查
this===&l
)应该会导致NOP,而其他
l
实际上应该执行合并。是的,我很难理解,我很确定它应该是“list
l
this
合并”我在上面尝试过,但我相信这是毫无意义的ever@ProgrammerCrazy你为什么认为这毫无意义?对于这类函数,这样做是常见的做法(赋值运算符实现的标准模式类似)。
LinkedList& LinkedList:operator=(const LinkedList& rhs) {
    if(this != &rhs) {
        // assign individual class member values from rhs
    }
    return *this;
}
// post: list l is merged to self.