为学校做项目......
我有一个包含5个参数的班级members
。我打算创建一个包含指向对象的向量,我做了。所以现在我有一个向量membersList
,它有指向不同成员的指针。
为每位成员分配一个memberID
。我正在尝试搜索给定memberID
的向量,并通过函数返回成员。我想我应该声明:
Members* getMember (string mID);
但是当谈到实际编写函数时,我迷失了。如果mID
是成员ID,我可以将其传递给此函数,然后我将mID
在此函数中用作参考点。如何搜索向量并返回与此ID相关联的成员?
谢谢!
编辑:工作描述我“做得太远而难以尝试解决它:
到目前为止,我有:
Members* Club::getMember (string mID)
{ return mID;}
我知道的并不多。函数定义位于类Club
中,这就是为什么它在那里。我无法弄清楚如何获取成员的ID号(将作为参数传递给此函数),然后使用它来搜索指针向量以返回关联的成员。当我弄清楚时,我会更新:)
答案 0 :(得分:0)
下面的函数将接受mID并在向量中搜索以找到匹配的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;
}
答案 1 :(得分:0)
您正在寻找std::find_if
。
std::find_if( membersList.begin(),
membersList.end(),
[](auto && m){return m->mID==mID;} );
这将返回找到的匹配的迭代器,如果找不到匹配则返回membersList.end()
。