8

ASCII値に従って配列をソートするためにstd::sort内部で定義されたものを使用することは可能ですか?はいの場合、例を挙げてください。<algorithm>char

4

5 に答える 5

8

はい。それは間違いなく可能です。次のようなサンプル コードを書くだけで、それを知ることができます。

char charArray[] = {'A','Z', 'K', 'L' };

size_t arraySize = sizeof(charArray)/sizeof(*charArray);

std::sort(charArray, charArray+arraySize);

//print charArray : it will print all chars in ascending order.

ところで、C スタイルの配列の使用は避けstd::array、 orを使用することをお勧めしますstd::vector

std::arrayコンパイル時にサイズがわかっている場合に使用されますがstd::vector、実行時にサイズがわかっている動的配列が必要な場合に使用されます。

于 2013-01-01T15:57:36.683 に答える
5

はい:

char array[] = "zabgqkzg";

std::sort(array, array+sizeof(array));

実際のデモについては、 http://ideone.com/0TkfDnを参照してください。

于 2013-01-01T15:59:20.123 に答える
3

もちろん、適切な方法はstd::begin()andを使用することstd::end()です。

std::sort(std::begin(array), std::end(array));

C++ 2011 コンパイラがない場合は、対応するbegin()andend()関数を実装できます。

template <typename T, int Size>
T* end(T (&array)[Size]) {
    return array + Size;
}
于 2013-01-01T16:04:08.850 に答える