#include <vector>
#include <algorithm>
#include <iostream>

template <typename iter>
void sort_b(iter first, iter last)
{
	while(first != last)
	{
		iter current = first;
		while(2 <= last - current)
		{
			if(*current > *(current + 1)) std::iter_swap(current, current + 1);
			++current;
		}
		--last;
	}
}

int main()
{
	std::vector<int> v { 1, 2, 3, 9, 8, 7, 6, 5, 4 };
	
	std::cout << "input: ";
	std::for_each(v.begin(), v.end(), [](int i){
		std::cout << i << " ";
	});
	std::cout << std::endl;
	
	sort_b(v.begin(), v.end());
	
	std::cout << "output: ";
	std::for_each(v.begin(), v.end(), [](int i){
		std::cout << i << " ";
	});
	
	return 0;
}