web-dev-qa-db-ja.com

C ++文字列の文字の並べ替え

文字列を持っている場合、文字をソートするための組み込み関数がありますか、それとも自分で記述する必要がありますか?

例えば:

string Word = "dabc";

次のように変更したいと思います。

string sortedWord = "abcd";

おそらくcharを使用する方が良いでしょうか? C++でこれを行うにはどうすればよいですか?

68
gprime

標準ライブラリの<algorithm>には、 ソートアルゴリズム があります。インプレースでソートされるため、次の操作を行うと、元のWordがソートされます。

std::sort(Word.begin(), Word.end());

オリジナルを失いたくない場合は、最初にコピーを作成してください。

std::string sortedWord = Word;
std::sort(sortedWord.begin(), sortedWord.end());
128
std::sort(str.begin(), str.end());

こちら をご覧ください

13
dreamlax

C++では sort である algorithm ヘッダーファイルである abcd 関数を含める必要があります。

使用法:std :: sort(str.begin()、str.end());

#include <iostream>
#include <algorithm>  // this header is required for std::sort to work
int main()
{
    std::string s = "dacb";
    std::sort(s.begin(), s.end());
    std::cout << s << std::endl;

    return 0;
}

出力:

__変数__

1
abe312

sort() 関数を使用できます。 sort()は algorithm ヘッダーファイルに存在します

        #include<bits/stdc++.h>
        using namespace std;


        int main()
        {
            ios::sync_with_stdio(false);
            string str = "sharlock";

            sort(str.begin(), str.end());
            cout<<str<<endl;

            return 0;
        }

出力:

アックロール

0
rashedcs