大家好,我正在尝试对链接列表进行排序,并遇到此错误,我不知道想知道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;
}
}

最佳答案

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的定义。

08-06 00:24