int [] argsort(<type>value[])
指定した配列を昇順でソートしたシーケンスのインデックスのリストを返します。
これは、配列内の項目の値ではなく、その項目の何かしらのプロパティによって、その配列を並べ替えることができます。
Examples ¶
文字列の長さ順で文字列を並べ替える
cvex main() { // 文字列を配列を指定... string colors[] = {"Red", "Green", "Blue", "Orange", "Violet", "Indigo"}; // それに対応した長さの配列を作成します int[] lengths = {}; foreach (string name; colors) { push(lengths, len(name)); } // 長さで並べ替えて、その新しい並びの配列を返します int[] ordering = argsort(lengths); // カラー名の配列を取得し、それを名前の長さで並べ替えます string colors_by_len[] = reorder(colors, ordering); printf("%s\n", colors_by_len); } // {Red, Blue, Green, Orange, Violet, Indigo}をプリントします
See also |