配列内のいくつかのオブジェクトを比較し、それらを名前でソートするコードを書きます。
まず、C++ で文字列を比較する方法は? Javaでは簡単です oneString.compareTo(another);
C++ でマージ ソートを使用している場合は、共有してください。ありがとう!
C ++での文字列の比較は、Javaの場合と非常によく似ています。メソッドは。compareの代わりに呼び出されcompareToます。したがって、を使用しますoneString.compare(another);。
std::stringメンバー関数を(C ++ 11ラムダ式を使用して)operator<()の比較関数として使用できます。std::sortこれは、実装としてマージソートを使用する場合と使用しない場合がありますが、同じO(N log N)複雑さを持ちます。
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
int main()
{
std::vector<std::string> v = { "foo", "bar" };
std::sort(v.begin(), v.end());
std::for_each(v.begin(), v.end(), [](std::string const& elem) {
std::cout << elem << "\n";
});
return 0;
}
Ideoneの出力