您的位置:首页 > 编程语言 > C语言/C++

【c++11】 练习 std::bind & lambda

2016-09-08 20:02 295 查看
没事,常学习。。啦啦啦

/*
*@vs2015 update3
*
*/
#include "stdafx.h"
#include <functional>
#include <vector>
#include <algorithm>
#include <iostream>

//判断一个容器中,大于5,小于10的个数
int main()
{
std::vector<int> collect = {1,3,2,5,8};

auto f = std::bind(std::logical_and<bool>(),
std::bind(std::greater<int>(),
std::placeholders::_1, 5),
std::bind(std::less_equal<int>(),
std::placeholders::_1, 10));

int count = std::count_if(collect.begin(), collect.end(), f);
std::cout << count << std::endl;

[&collect]() {
int count = 0;
for (auto iter = collect.begin(); iter != collect.end(); ++iter)
{
if (*iter > 5 && (*iter < 10))
{
count++;
}
}
std::cout << "number: " << count << std::endl;
}();

getchar();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++11