如果我有一个字符串,是否有一个内置功能可以对字符进行排序,还是我必须自己编写?
例如:
string word = "dabc";
我想将其更改为:
string sortedWord = "abcd";
也许使用char是更好的选择?我将如何在C ++中做到这一点?
如果我有一个字符串,是否有一个内置功能可以对字符进行排序,还是我必须自己编写?
例如:
string word = "dabc";
我想将其更改为:
string sortedWord = "abcd";
也许使用char是更好的选择?我将如何在C ++中做到这一点?
Answers:
标头中的标准库中有一个排序算法<algorithm>
。它会原地排序,因此,如果您执行以下操作,则原始单词将被排序。
std::sort(word.begin(), word.end());
如果您不想丢失原件,请先进行复印。
std::string sortedWord = word;
std::sort(sortedWord.begin(), sortedWord.end());
std::sort
默认情况下按字母升序排序。假设这是一个轻微的错字,你想德压痕顺序,使用的版本std::sort
,需要一个Compare
作为其第三个参数并提供std::greater
,而不是默认std::less
。默认std::string
使用char
类型,例如std::sort(sortedWord.begin(), sortedWord.end(), std::greater<char>());
-在原始问题中给出的结果为“ dcba”,而不是“ abcd”。
std::sort
呢