71 lines
1.5 KiB
C++
71 lines
1.5 KiB
C++
/*
|
|
Copyright (c) Alexander Zaitsev <zamazan4ik@gmail.by>, 2017
|
|
|
|
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
For more information, see http://www.boost.org
|
|
*/
|
|
|
|
#include <vector>
|
|
#include <functional>
|
|
#include <iostream>
|
|
|
|
#include <boost/algorithm/is_partitioned_until.hpp>
|
|
|
|
|
|
namespace ba = boost::algorithm;
|
|
|
|
bool isOdd(const int v1)
|
|
{
|
|
return v1 % 2 != 0;
|
|
}
|
|
|
|
struct isOddComp
|
|
{
|
|
bool operator()(const int v1) const
|
|
{
|
|
return v1 % 2 != 0;
|
|
}
|
|
};
|
|
|
|
|
|
int main ( int /*argc*/, char * /*argv*/ [] )
|
|
{
|
|
std::vector<int> good{1, 2, 4};
|
|
std::vector<int> bad{1, 2, 3};
|
|
|
|
//Use custom function
|
|
auto it1 = ba::is_partitioned_until(good.begin(), good.end(), isOdd);
|
|
if(it1 == good.end())
|
|
{
|
|
std::cout << "The sequence is partitioned\n";
|
|
}
|
|
else
|
|
{
|
|
std::cout << "is_partitioned_until check failed here: " << *it1 << std::endl;
|
|
}
|
|
|
|
//Use custom comparator
|
|
auto it2 = ba::is_partitioned_until(good.begin(), good.end(), isOddComp());
|
|
if(it2 == good.end())
|
|
{
|
|
std::cout << "The sequence is partitioned\n";
|
|
}
|
|
else
|
|
{
|
|
std::cout << "is_partitioned_until check failed here: " << *it2 << std::endl;
|
|
}
|
|
|
|
auto it3 = ba::is_partitioned_until(bad, isOdd);
|
|
if(it3 == bad.end())
|
|
{
|
|
std::cout << "The sequence is partitioned\n";
|
|
}
|
|
else
|
|
{
|
|
std::cout << "is_partitioned_until check failed here: " << *it3 << std::endl;
|
|
}
|
|
return 0;
|
|
}
|