#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
int main()
{
// Lambda expression
auto comp = [](const char *lhs, const char *rhs)
{
std::string l = lhs;
std::string r = rhs;
return l < r;
};
std::vector<const char *> data = {
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
};
std::sort(std::begin(data), std::end(data), comp);
copy(std::begin(data), std::end(data), std::ostream_iterator<std::string>(std::cout, "\n"));
std::cout << '\n';
const char *val = "July";
bool found = std::binary_search(std::begin(data), std::end(data), val, comp);
std::cout << val << " " << (found ? "found" : "not found") << '\n';
}