c++ remove_if能操作自定义类型吗
导读:是的,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
函数移除未成年人,最终打印出剩余的成年人。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: c++ remove_if能操作自定义类型吗
本文地址: https://pptw.com/jishu/690527.html