在链表C ++中搜索Object的某个字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在链表C ++中搜索Object的某个字段相关的知识,希望对你有一定的参考价值。

int Search(int x) {
        Node* temp = head;
        int pos = 1;
        while(temp != nullptr){
            if(temp->data == x)
                return pos;
            else{
                temp=temp->next;
                pos++;
            }
        }
        return 0;
}

此搜索功能用于搜索我创建的链表中的整数,并返回整数的位置。我现在使用的链接列表涉及具有四个字段的Person对象:名称,年龄,身高和体重。如何编写搜索功能以按名称搜索用户,然后在找到后打印出整个人员?我试着写这个,但它不起作用:

Person Search(Person*A) {
        Node* temp = head;
        int pos = 1;
        while(temp != nullptr){
            if(temp->data == A)
                return *A;
            else{
                temp=temp->next;
                pos++;
            }
        }
        return *A;
}

最后我想我需要名字的setter / getters,我需要传递参数搜索(Person.getName()),但这也是一个错误。有人可以向我解释如何做到这一点?我没有在网上找到任何类似的东西,所以任何帮助将不胜感激。提前致谢!

答案

我认为搜索功能类似于以下代码:

Person* Search(std::string search_name) {
        Node* temp = head;
        while(temp != nullptr){
            if(temp->data->name == search_name){ //compare name
                return temp->data;
            }
            temp=temp->next;
        }
        return nullptr;
}

输入要搜索的名称,该函数将返回人物指针

以上是关于在链表C ++中搜索Object的某个字段的主要内容,如果未能解决你的问题,请参考以下文章

在链表C++中的某个位置插入节点

C语言反转单向链表的代码

请问在java代码中怎样获取某个磁盘上的某个文件的绝对路径和相对路径?有知道的麻烦告诉我!谢谢!

精选力扣500题 第63题 剑指 Offer 36. 二叉搜索树与双向链表c++/java详细题解

对指针的引用如何在C ++中完全起作用,以及何时需要它们(在链表的情况下)

如何将结构字段与C中的变量进行比较? [复制]