gpt4 book ai didi

c++ - 使用删除 - 有没有办法减少这段代码的重复性?

转载 作者:行者123 更新时间:2023-12-05 01:54:26 25 4
gpt4 key购买 nike

此代码从文件中删除六行关于联系人列表中的人的信息。这段代码工作得很好,但我不知道如何减少这段代码的重复性。

我使用 while 循环将我的行放入 vector 中,然后使用以下 for 循环从 中删除> vector 。在循环结束时,我再次重新创建文件并将剩余数据推送到文件中。

如您所见,我多次重复 file.erase()

std::cout << "Enter name of contact you would like to delete: ";
getline(std::cin, search);

for(int i = 0; i < (int)file.size(); ++i)
{
if(file[i].substr(0, search.length()) == search)
{
file.erase(file.begin() + i);
file.erase(file.begin() + i);
file.erase(file.begin() + i);
file.erase(file.begin() + i);
file.erase(file.begin() + i);
file.erase(file.begin() + i);
std::cout << "Success, contact deleted!"<< std::endl;
i = 0;
}
}

我能否使用以下代码以更好、更少重复的方式制作我的代码?

for(int remaining = 6; remaining > 0 && itr != file.end(); itr++, remaining--) {

最佳答案

您可以这样做,而不是将第一个元素删除 6 次:

file.erase(file.begin() + i, file.begin() + i + 6)

此删除方法中的两个参数表示要删除的范围 [first, last)。 Reference link

关于c++ - 使用删除 - 有没有办法减少这段代码的重复性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70614047/

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