按条件替换-------replace_if
条件 替换 if replace -------
2023-09-14 09:13:38 时间
内置数据类型:
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
//函数对象
class GREATERthan {
public:
bool operator()(int val)
{
if (val > 5)
return true;
//如果这里的false不写,那么默认返回true
return false;
}
};
//普通函数
void print(int val)
{
cout << val + 1 << " ";
}
void test01()
{
vector<int> v = { 1,2,3,4,5,6,7,8,9 };
replace_if(v.begin(), v.end(), GREATERthan(), 520);
for_each(v.begin(), v.end(), print);
}
int main()
{
test01();
cout << endl;
system("pause");
return 0;
}
自定义数据类型:
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
#include<string>
//replace_if
//自定义数据类型
class person {
public:
person(string name,int age):name(name),age(age){}
int age;
string name;
//因为重载的==是为了让底层代码识别,所以依据底层代码写的规范,加上const,防止修改数据
bool operator==(const person& p1)
{
if (p1.name == this->name && p1.age == this->age)
return true;
return false;
}
};
//函数对象
class p {
public:
void operator()(person& p1)
{
cout << p1.name << "\t" << p1.age << endl;
}
};
//普通函数
bool a(person& p1)
{
if (p1.age > 19)
return true;
return false;
}
//函数对象
class a1 {
public:
bool operator()(person& p1)
{
if (p1.age > 19)
return true;
return false;
}
};
void test01()
{
person p1("孙悟空1", 18);
person p2("孙悟空2", 19);
person p3("孙悟空3", 20);
person p4("猪八戒", 20);
vector<person> v = { p1,p2,p3};
cout << "替换前:\n";
for_each(v.begin(), v.end(), p());
//因为要查找与p1值相符的元素,所以涉及到了比较,如果是自定义数据类型,要重载==,返回值为bool
//replace_if(v.begin(), v.end(), a1(), p4);
replace_if(v.begin(), v.end(), a, p4);
cout << "\n替换后: \n";
for_each(v.begin(), v.end(), p());
}
int main()
{
test01();
cout << endl;
system("pause");
return 0;
}
相关文章
- 【说站】python if语句的条件测试
- 条件变量使用细节
- 真实飞行条件下使用六干电极EEG系统基于ERP和功率谱以监测飞行员的精神负荷
- mybatis plus 条件构造器queryWrapper学习
- 条件 StatmentMySQL 中的 IF Statment 条件的使用(mysql的if)
- MySQL中的 IF 条件语句的应用(mysql中if的用法)
- JSP JSTL <c:if>标签:条件判断标签
- MySQL存储函数IF:实现条件判断的利器(mysql存储函数if)
- 判断Linux下实现多个条件判断的方法(linuxif多个条件)
- 判断Linux下处理多个条件的IF语句(linuxif多个条件)
- MongoDB条件查询:实现数据精确定位(mongodb条件查询)
- 使用Oracle的IF语句进行条件控制(oracle的if语句)
- 条件查询掌握Oracle数据库多个IF条件查询的方法(oracle多个if)
- If条件灵活,MySQL解决你的需求(if条件mysql)
- 使用MySQL的IF函数进行多条件判断(mysql的if函数)
- 如何利用MySQL实现多个查询条件?(mysql多个查询条件)
- MSSQL语句的If条件判断(mssql 语句 if)
- Linux下的条件锁使用技巧(条件锁linux)
- 解析MSSQL条件空格解析:避免报错小技巧(mssql 条件空格)
- Oracle关联条件的号优势一种更高效处理方式(oracle关联条件加号)
- 汇总统计数据MySQL中如何使用sum按条件筛选数据(mysql中sum按条件)
- MySQL中使用IF函数做条件判断的方法详解(mysql中if怎么用)
- 妙用Loop语句执行Oracle数据库查询(loop条件oracle)
- MySQL中使用IF语句进行条件判断(mysql 中加if判断)
- MySQL中判断条件语句使用技巧(mysql中判断)
- MySQL中使用函数IF进行条件判断(mysql中函数if判断)
- 语句利用Oracle的IF条件语句实现多条件判断(oracle中if多条件)
- 利用Oracle IF语句进行条件执行实例讲解(oracle if实例)
- python条件和循环的使用方法