mirror of
				https://github.com/boostorg/algorithm.git
				synced 2025-10-27 05:41:57 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			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;
 | |
| }
 |