在 C++ 中,要从一个 vector 中删除结构体(或其他元素),可以使用 或 方法,具体取决于想要删除的元素的位置。
使用 方法:
方法接受一个迭代器参数,它指向 vector 中要删除的元素。可以使用标准库的 算法来找到要删除的元素,然后再使用 删除该元素。这个方法适用于需要删除多个匹配元素的情况。
假设有一个 结构体,并且想从 vector 中删新澳2024最新资料261期除年龄等于 30 今天晚上_36个码期期准的人:
#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 的最后一个元素,可以使用 方法:
#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 的大小都会相应地减小。