栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++11 std::all

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++11 std::all

如果需要判断容器中,全部元素或者任意元素满足或者不满足某个条件,那么你就有必要了解一下 std::all_of、std::any_of、std::none_of。

  • std::all_of:容器中是否所有元素都满足某个条件,是,则返回 true,否则返回 false
  • std::any_of:容器中是否有一个元素满足某个条件,是,则返回 true,否则返回 false
  • std::none_of:容器中是否所有元素都不满足某个条件,是,则返回 true,否则返回 false
std::all_of 应用场景举例:容器内所有元素是否都为偶数
#include 
#include 
#include 
#include 

std::function is_even = [](int x) -> bool
{
	return x % 2 ? false : true;
};

//使用auto关键字自动推导
auto isEven = [](int x) -> bool
{
	return (std::fmod(x, 2) == 0);
};

int main()
{
	//是否容器内所有元素都是偶数
	std::vector intArray = { 2, 4, 6, 8, 10 };
	bool bIsEven = std::all_of(intArray.begin(), intArray.end(), isEven);
	if (bIsEven) 
	{
		std::cout << "yes, all elements is even" << std::endl;
	}
	else
	{
		std::cout << "no, not all elements is even" << std::endl;
	}

    return 0;
}
std::any_of 应用场景举例:是否字符串中包含大写字母
#include 
#include 
#include 
#include 


int main()
{
	std::string str = "helloWorld";
	bool result = std::any_of(str.begin(), str.end(), ::isupper);
	if (result)
	{
		std::cout << "yes, has upper case letter" << std::endl;
	}
	else 
	{
		std::cout << "no, all element is lower case letter" << std::endl;
	}

    return 0;
}
std::none_of 应用场景举例:是否没有低于60分的科目
#include 
#include 
#include 


int main()
{
	std::vector < int > scores = { 78, 89, 94, 97 };
	//是否没有一科分数低于60分
	bool result = std::none_of(scores.begin(), scores.end(), [](const int& score) 
		{
			return score < 60;
		});

	if (result)
	{
		std::cout << "yes, all scores are above 60" << std::endl;
	}
	else 
	{
		std::cout << "no, all scores are below 60" << std::endl;
	}

    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1026469.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号