代码拉取完成,页面将自动刷新
同步操作将从 四月是你的谎言/深入应用C++11:代码优化与工程级应用 的实践代码 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include <iostream>
#include <functional>
#include <list>
#include <algorithm>
class A
{
public:
int i_ = 0;
void output(int x, int y)
{
std::cout << x << " " << y << std::endl;
}
};
int main(void)
{
A a;
std::function<void(int, int)> fr = std::bind(&A::output, &a,
std::placeholders::_1, std::placeholders::_2);
fr(1, 2);
std::function<int &(void)> fr_i = std::bind(&A::i_, &a);
fr_i() = 123;
std::cout << a.i_ << std::endl;
std::list<int> coll = {1, 2, 9, 4};
using std::placeholders::_1;
//int count = std::count_if(coll.begin(), coll.end(), std::bind(std::less<int>(), 2, _1));
//使用组合 bind 函数
//目标找出集合中大于 5 小于10 的元素个数
std::bind(std::greater<int>(), std::placeholders::_1, 5);
std::bind(std::less_equal<int>(), std::placeholders::_1, 10);
//using std::placeholders::_1;
auto f = std::bind(std::logical_and<bool>(),
std::bind(std::greater<int>(), _1, 5),
std::bind(std::less_equal<int>(), _1, 10));
int count = std::count_if(coll.begin(), coll.end(), f);
std::cout << count << std::endl;
return 0;
}
//fr 的类型是 std::function<void(int, int)>。 我们通过使用 std::bind ,将 A 的成员函数 output 的指针和 a 绑定,并转换为一个仿函数放入 fr 中存储
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。