Sorting a std::vector<std::pair<std::string,bool>> by the string?
How can I sort this vector by comparing the pair.first which is an std::string ? (without providing a static compare function, nor use boost). std::vector<std::pair<std::string, bool> > v; std::sort(v.begin(), v.end()); std::pair overloads operator< to sort first by the first element then by the second element. Thus, if you just sort the vector using the default sort ordering ( operator< ), you'll get your desired ordering. I really like James' answer, but there's one other option you might want to consider - just funnel everything into a std::map : std::map<std::string, bool> myMap(v.begin(),