如果我有一个字符串,是否有内置函数可以对其进行字符排序,还是必须编写自己的函数?
例如:
string word = "dabc";
我想要将其更改为:
string sortedWord = "abcd";
也许使用char会是更好的选择?在C++中我该怎么做呢?
标准库中有一种排序算法,在头文件<algorithm>
中。它会原地排序,所以如果你执行以下操作,原始单词将被排序。
std::sort(word.begin(), word.end());
如果你不想丢失原始数据,先做一份拷贝。
std::string sortedWord = word;
std::sort(sortedWord.begin(), sortedWord.end());
std::sort
按字母顺序递增排序。如果您想按照递减顺序进行排序,可以使用带有第三个参数 Compare
的 std::sort
版本,并提供 std::greater
代替默认的 std::less
。std::string
默认使用 char
类型,所以例如 std::sort(sortedWord.begin(), sortedWord.end(), std::greater<char>());
— 在原始问题中将得到结果 "dcba",而不是 "abcd"。 - Tommystd::sort(str.begin(), str.end());
看看这里
std::sort
怎么样? - dreamlax