在 C++ 中,要从一个 vector 中删除结构体(或其他元素),可以使用 或 方法,具体取决于想要删除的元素的位置。
使用 方法:
方法接受一个迭代器参数,它指向 vector 中要删除的元素。可以使用标准库的 算法来找到要删除的元素,然后再使用 删除该元素。这个方法适用于需要删除多个匹配元素的情况。
假设有一个 结构体,并且想从 vector 中删新澳2024最新资料261期除年龄等于 30 今天晚上_36个码期期准的人:
C++
#include <iostream>
#include <vector>
#include <algorithm>
struct Person {
std::string name;
int age;
std::string occupation;
};
int main() {
std::vector<Person> people = {
{"John", 25, "Engineer"},
{"Alice", 30, "Doctor"},
{"Bob", 22, "Student"},
{"Eve", 30, "Teacher"}
};
// 使用 std::remove_if 和 erase 删除年龄等于 30 的人
auto newEnd = std::remove_if(people.begin(), people.end(), [](const Person& person) {
return person.age == 30;
});
// 使用 erase 方法擦除多余的元素
people.erase(newEnd, people.end());
// 输出剩余的人员信息
for (const auto& person : people) {
std::cout << "Name: " << person.name << ", Age: " << person.age << ", Occupation: " << person.occupation << std::endl;
}
return 0;
}
使用 方法:
如果只是想删除 vector 的最后一个元素,可以使用 方法:
C++
#include <iostream>
#include <vector>
struct Person {
std::string name;
int age;
std::string occupation;
};
int main() {
std::vector<Person> people = {
{"John", 25, "Engineer"},
{"Alice", 30, "Doctor"},
{"Bob", 22, "Student"}
};
// 删除最后一个元素
澳门开彩正版资料大全 people.pop_back();
// 输出剩余的人员信息
for (const auto& person : people) {
std::cout << "Name: " << person.name << ", Age: " << person.age << ", Occupation: " << person.occupation << std::endl;
}
return 0;
}
无论是使用 还是 ,在删除元素后,vector 的大小都会相应地减小。