配列内のいくつかのオブジェクトを比較し、それらを名前でソートするコードを書きます。
まず、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の出力