如果我有一個字符串是否有一個內置函數來排序字符或我會寫我自己的?排序字符的C + +字符串
例如:
string word = "dabc";
我想改變它,以便:
string sortedWord = "abcd";
也許使用字符是一個更好的選擇?我將如何在C++中執行此操作?
如果我有一個字符串是否有一個內置函數來排序字符或我會寫我自己的?排序字符的C + +字符串
例如:
string word = "dabc";
我想改變它,以便:
string sortedWord = "abcd";
也許使用字符是一個更好的選擇?我將如何在C++中執行此操作?
有一個在標準庫a sorting algorithm,在報頭中<algorithm>
。它排序,所以如果你做了以下,你的原始單詞將被分類。
std::sort(word.begin(), word.end());
如果您不想丟失原件,請先複印一份。
std::string sortedWord = word;
std::sort(sortedWord.begin(), sortedWord.end());
謝謝,我現在覺得很蠢,太多的PHP ... – gprime 2012-02-02 06:28:37
如果我們想讓字符串按遞增順序排序呢? – madhuspot 2017-06-16 14:09:33
默認情況下,@madhuspot'std :: sort'按字母順序遞增排序。假設這是一個小錯字,並且你想要壓縮命令,可以使用'std :: sort'版本,它將'Compare'作爲它的第三個參數,並提供'std :: greater'而不是默認的'std :: less'。 'std :: string'默認使用'char'類型,例如'std :: sort(sortedWord.begin(),sortedWord)。end(),std :: greater
你必須包括sort
函數,它是在algorithm
頭文件是在C++ standard template library。
用法: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;
}
OUTPUT:
abcd
#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;
}
如何將在內部執行,請解釋邏輯
我不理解你的評論「如何執行內部請解釋邏輯」。 – 2017-11-17 10:39:34
什麼'性病:: sort'? – dreamlax 2012-02-02 05:21:38
請注意,任何種類的基於幼稚字符值的排序都會以UTF-8爲基礎 - 取決於您想要考慮語言環境的字符串。 – 2017-11-17 10:44:06