2

配列内のいくつかのオブジェクトを比較し、それらを名前でソートするコードを書きます。

まず、C++ で文字列を比較する方法は? Javaでは簡単です oneString.compareTo(another);

C++ でマージ ソートを使用している場合は、共有してください。ありがとう!

4

2 に答える 2

1

C ++での文字列の比較は、Javaの場合と非常によく似ています。メソッドは。compareの代わりに呼び出されcompareToます。したがって、を使用しますoneString.compare(another);

于 2012-08-20T18:02:29.230 に答える
0

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の出力

于 2012-08-20T18:02:34.773 に答える