c++ remove_if能操作自定义类型吗

   2024-10-05 5200
核心提示:是的,C++的remove_if函数可以操作自定义类型。要使用remove_if函数操作自定义类型,需要提供一个谓词函数(Predicate Function

是的,C++的remove_if函数可以操作自定义类型。要使用remove_if函数操作自定义类型,需要提供一个谓词函数(Predicate Function),用于定义何时应该移除元素。该谓词函数可以根据自定义类型的特定属性或条件来判断是否应该移除该元素。

以下是一个示例,演示如何使用remove_if函数移除自定义类型Person的元素:

#include <iostream>#include <vector>#include <algorithm>struct Person {    std::string name;    int age;};bool isAdult(const Person& person) {    return person.age >= 18;}int main() {    std::vector<Person> people = { {"Alice", 25}, {"Bob", 17}, {"Charlie", 30} };    // 移除未成年人    people.erase(std::remove_if(people.begin(), people.end(), isAdult), people.end());    // 打印剩余的人员    for (const Person& person : people) {        std::cout << person.name << " (" << person.age << ")" << std::endl;    }    return 0;}

在上面的示例中,定义了一个Person结构体,并提供了一个谓词函数isAdult,用于判断一个人是否成年。然后使用remove_if函数结合isAdult函数移除未成年人,最终打印出剩余的成年人。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号