查找姓名删除vector容器中一组数据
时间: 2024-01-12 18:05:32 浏览: 84
要通过姓名查找并删除vector容器中的一组数据,你可以使用以下步骤:
1. 创建一个结构体或类,其中包含需要存储的数据字段,例如姓名和其他相关信息。
2. 定义一个vector容器,其中元素的类型为上述结构体或类。
3. 使用循环从用户输入获取一组数据,并将其添加到vector容器中。
4. 提示用户输入要删除的姓名。
5. 使用迭代器遍历vector容器,查找并删除匹配的元素。
6. 输出删除后的vector容器。
下面是一个示例代码,演示如何通过姓名查找并删除vector容器中的一组数据:
```cpp
#include <iostream>
#include <vector>
#include <string>
struct Person {
std::string name;
// 其他相关信息
};
int main() {
std::vector<Person> people;
// 获取一组数据
std::cout << "输入数据(姓名):" << std::endl;
std::string name;
do {
std::getline(std::cin, name);
if (name != "")
people.push_back({name});
} while (name != "");
// 查找并删除指定姓名的数据
std::cout << "输入要删除的姓名:" << std::endl;
std::string targetName;
std::getline(std::cin, targetName);
auto it = people.begin();
while (it != people.end()) {
if (it->name == targetName)
it = people.erase(it);
else
++it;
}
// 输出删除后的vector容器
std::cout << "删除后的数据:" << std::endl;
for (const auto& person : people) {
std::cout << person.name << std::endl;
}
return 0;
}
```
在上述示例中,我们首先定义了一个名为Person的结构体,其中包含一个name字段和其他相关信息。然后,我们定义了一个vector容器,元素的类型为Person。
接下来,我们使用循环从用户输入获取一组数据,并将其添加到vector容器中。用户可以通过输入空行来结束输入。
然后,我们提示用户输入要删除的姓名,并使用迭代器遍历vector容器,查找并删除匹配的元素。使用erase函数删除元素后,我们需要更新迭代器,以确保不跳过后续元素。
最后,我们输出删除后的vector容器中的数据。
请注意,上述示例仅演示了通过姓名查找并删除数据的基本逻辑。你可以根据自己的需求进行修改和扩展。
阅读全文