I have a bunch of strings that I need to sort. I think a std::vector would be the easiest way to do this. However, I\'ve never used vectors before and so would like some help.>
You can just do
std::sort(data.begin(), data.end());
And it will sort your strings. Then go through them checking whether they are in order
if(names.empty())
return true; // empty vector sorted correctly
for(std::vector::iterator i=names.begin(), j=i+1;
j != names.end();
++i, ++j)
if(*i > *j)
return false;
return true; // sort verified
In particular, std::string::compare
couldn't be used as a comparator, because it doesn't do what sort
wants it to do: Return true if the first argument is less than the second, and return false otherwise. If you use sort
like above, it will just use operator<
, which will do exactly that (i.e std::string
makes it return first.compare(second) < 0
).