gpt4 book ai didi

c++ - 从 vector 中删除对象

转载 作者:行者123 更新时间:2023-11-30 00:50:47 25 4
gpt4 key购买 nike

我将对象存储在一个 vector 中,其中每个对象都有一个员工编号属性。如果用户想从 vector 中删除一个对象,用户可以输入员工编号,这样特定的对象就会从 vector 中删除。

void Administrator::deleteMember()
{
string staffNumber;
FileHandler<Administrator> adminTObj;
cout<<"Enter Staff Number of the Member to Delete"<<endl;
cin>>staffNumber;

if(staffNumber.find("Ad"))
{
vector<Administrator> myVec=adminTObj.getVectorAdministrator();
for(Administrator iter:myVec)
{
if(iter.getStaffNumber()==staffNumber) //checks if the staff number matches an object's staff number
{
// If it matches it should delete the record (Need to implement)
}
}
}
}

如何从 vector 中删除对象?

最佳答案

如果你有一个单一的元素,你可以使用std::find_if获取元素的迭代器,以及 std::vector::erase删除它。

auto it = std::find_if(myVec.begin(), 
myVec.end(),
[staffNumber](const Administrator& a)
{ return a.getStaffNumber() == staffNumber; });

myVec.erase(it);

如果要删除所有满足条件的元素,请使用 std::remove_ifstd::vector::erase(erase-remove idiom)。

auto it = std::remove_if(myVec.begin(), 
myVec.end(),
[staffNumber](const Administrator& a)
{ return a.getStaffNumber() == staffNumber; });

myVec.erase(it, myVec.end());

关于c++ - 从 vector 中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23814019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com