作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此代码从文件中删除六行关于联系人列表中的人的信息。这段代码工作得很好,但我不知道如何减少这段代码的重复性。
我使用 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/
我正在尝试使用重复包装脚本(duplicity-restore.sh)恢复文件,内容如下: #!/bin/bash # Export some ENV variables so you don't h
在过去的几周里,我们的 mysql 数据库一直在随机崩溃。 - 我已经检查了所有数据库是否损坏,但一切正常。 编辑 2016.01.14 - 经常弹出的错误如下 - InnoDB: Database
我是一名优秀的程序员,十分优秀!