1. 程式人生 > >【Boost】boost::algorithm的幾個簡單例子

【Boost】boost::algorithm的幾個簡單例子

void test_foreach()
{
	using namespace boost::assign;
	std::vector<int> v;
	v += 1, 2, 3, 4, 5, 6, 7, 8, 9;

	BOOST_FOREACH(int x, v)
	{
		std::cout << x << ", ";
	}
	std::cout << std::endl;

	std::string str("boost foreach");
	BOOST_FOREACH(char& x, str)
	{
		std::cout << x << "-";
	}
	std::cout << std::endl;
}

void test_minmax()
{
	struct Comp
	{
		bool operator()(const std::string &a, const std::string &b)
		{
			return (a < b) || (b.find("BOSS") != std::string::npos);
		}
	};

	std::string s1("5000"), s2("123BOSS");
	BOOST_AUTO(x, minmax(s1, s2));
 	std::cout << x.second << " " << x.first << std::endl;
	BOOST_AUTO(y, minmax(s1, s2, Comp()));
 	std::cout << y.second << " " << y.first << std::endl;
}

void test_minmax_element()
{
	std::vector<int> v = boost::assign::list_of(633)(90)(67)(83)(2)(100);
	BOOST_AUTO(x, boost::minmax_element(v.begin(), v.end()));

	std::cout << "min: " << *x.first << std::endl;
	std::cout << "max: " << *x.second << std::endl;
}