在c++中搜索指针向量

  • 本文关键字:指针 向量 搜索 c++ c++
  • 更新时间 :
  • 英文 :


正在为学校做一个项目…

我有一个类members有5个参数。我打算创建一个包含指向对象的指针的向量,我做到了。所以现在我有一个向量membersList,它有指向不同成员的指针。

每个成员分配一个memberID。我试图搜索给定memberID的向量,并通过函数返回成员。我想我应该这样声明:

Members* getMember (string mID);

但是当涉及到实际写函数时,我迷路了。如果mID是成员ID,我可以将其传递给此函数,然后我将在此函数中使用mID作为引用点。我如何搜索我的向量并返回这个ID所关联的成员?

谢谢!

编辑:描述到目前为止我所做的工作和解决它的困难:

到目前为止,我有:

Members* Club::getMember (string mID)
{ return mID;}

我知道不是很多。函数定义位于类Club中,这就是为什么它在那里。我在弄清楚如何获取成员的ID号(将作为参数传递给此函数),然后使用它来搜索指针向量以返回相关成员时遇到了麻烦。当我弄清楚的时候我会更新:)

下面的函数将接受mID并在vector中搜索查找匹配的mID,如果找到匹配,则返回该指针,否则返回0

Members* Club::getMember (string mID)
{
    int count = 0;
    while(count  < membersList.size)
    {
        if(mID) == (membersList.at(count))->mID)
            return membersList.at(count);
    }
    return 0;
}

您要找的是std::find_if

std::find_if( membersList.begin(),
              membersList.end(),
              [](auto && m){return m->mID==mID;} );

这将返回找到的匹配项的迭代器,如果没有找到匹配项,则返回membersList.end()

最新更新