#include <iostream>
#include <string>
#include <vector>
#include <cctype>
#include <algorithm>

int main()
{
	std::vector<std::string> myvector
	{
		"HELLO", "Hello", "hello",
		"hello", "HELLO", "Hello"
	};
	std::sort(std::begin(myvector), std::end(myvector), [](std::string const &a, std::string const &b)
	{
	    return std::lexicographical_compare(std::begin(a), std::end(a), std::begin(b), std::end(b), [](std::string::value_type a, std::string::value_type b)
	    {
	        return std::tolower(a) < std::tolower(b);
	    });
	});
	for(auto const &s : myvector)
	{
		std::cout << s << std::endl;
	}
}
