动物园

内部免费一肖一码香港一肖一码一-资源库安全平台_官方指定唯一合作伙伴

2025-05-17 | 分类: 动物园 | 查看: 2

在 C++ 中,要从一个 vector 中删除结构体(或其他元素),可以使用 或 方法,具体取决于想要删除的元素的位置。

  1. 使用 方法:

方法接受一个迭代器参数,它指向 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;
}
  1. 使用 方法:

如果只是想删除 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 的大小都会相应地减小。


关键词: