linux vector 存结构体 的使用方法 怎么删除指定结构体给出所有例子
在Linux中,可以使用vector容器来存储结构体。下面是一个示例,展示了如何使用vector存储结构体以及如何删除指定的结构体。
#include <iostream>
#include <vector>
struct MyStruct {
int id;
std::string name;
};
int main() {
std::vector<MyStruct> myVector;
// 添加结构体到vector
myVector.push_back({1, "John"});
myVector.push_back({2, "Alice"});
myVector.push_back({3, "Bob"});
// 删除指定结构体
int targetId = 2;
for (auto it = myVector.begin(); it != myVector.end(); ++it) {
if (it->id == targetId) {
myVector.erase(it);
break;
}
}
// 打印vector中的结构体
for (const auto& item : myVector) {
std::cout << "ID: " << item.id << ", Name: " << item.name << std::endl;
}
return 0;
}
在上述示例中,首先定义了一个结构体MyStruct,它包含一个整型的id和一个字符串类型的name。然后,创建了一个std::vector<MyStruct>类型的vectormyVector。
接下来,通过使用push_back()函数将三个结构体添加到vector中。
然后,定义了一个整型变量targetId,用于指定要删除的结构体的id。使用迭代器遍历vector,找到与targetId匹配的结构体,并使用erase()函数从vector中删除该结构体。
最后,使用范围for循环遍历vector中剩余的结构体,并打印出它们的id和name。
输出结果将是:
ID: 1, Name: John
ID: 3, Name: Bob
这样,你就可以使用vector来存储结构体,并删除指定的结构体。
原文地址: https://www.cveoy.top/t/topic/i10g 著作权归作者所有。请勿转载和采集!