struct my_less { bool operator()(Data const &a, Data const &b) const { return strcmp(a.str, b.str) < 0; } }; std::vector<Data> v; ... std::sort(v.begin(), v.end(), my_less());