備忘録

プログラムやゲーム関連に関すること

【C++】述語を評価する

#include <iostream>
#include <algorithm>
#include <array>

int _tmain(int argc, _TCHAR* argv[])
{
	auto print = [](int x){ std::cout << x << std::endl; };
	auto check = [](int x)->bool{ return x % 2 == 0; };

	std::array<int, 4> array_0 = {0, 1, 2, 3};
	print(std::all_of(array_0.cbegin(), array_0.cend(), check)); // 0
	print(std::any_of(array_0.cbegin(), array_0.cend(), check)); // 1
	print(std::none_of(array_0.cbegin(), array_0.cend(), check)); // 0
	std::cout << std::endl;

	std::array<int, 4> array_1 = {1, 3, 5, 7};
	print(std::all_of(array_1.cbegin(), array_1.cend(), check)); // 0
	print(std::any_of(array_1.cbegin(), array_1.cend(), check)); // 0
	print(std::none_of(array_1.cbegin(), array_1.cend(), check)); // 1
	std::cout << std::endl;

	std::array<int, 4> array_2 = {2, 4, 6, 8};
	print(std::all_of(array_2.cbegin(), array_2.cend(), check)); // 1
	print(std::any_of(array_2.cbegin(), array_2.cend(), check)); // 1
	print(std::none_of(array_2.cbegin(), array_2.cend(), check)); // 0

	return 0;
}