“赋值中的非值”错误C ++对链表进行排序

时间:2012-11-27 07:03:35

标签: sorting compiler-errors linked-list

嘿伙计们我试图对链接列表进行排序并且遇到此错误的问题我不明白是否yall可以帮助...错误只发生在我的if语句的3行中...我在下面标记了它们。

void MovieInventory::sortInventory()
{

MovieNode *first;
MovieNode *second;
MovieNode *temp;
    Movie m;
first = movieList;

while (first != NULL)
{
    second = first->next;
    while (second!=NULL)
    {
        if (first->m.getSku() < second->m.getSku() )
                {
            temp->m.getSku()=first->m.getSku(); //error 
            first->m.getSku()=second->m.getSku(); //error
            second->m.getSku()=temp->m.getSku(); //error
            delete temp;
                }
        second = second->next;
    }
    first = first->next;
}
}

1 个答案:

答案 0 :(得分:1)

L值可以指定值。在您的示例中,您无法为m.getSku()调用的返回值赋值,这是编译器抱怨的内容。

我相信你的意思是写下这样的东西:

if (first->m.getSku() < second->m.getSku() )
            {
        temp->m.setSku(first->m.getSku());
        first->m.setSku(second->m.getSku());
        second->m.setSku(temp->m.getSku());
        delete temp;
            }

这当然取决于您对Movie的定义。