ソートしたい配列の「先頭」と「末尾」ではなく、「先頭」と「末尾の次」を渡す。
以下の配列でソートを試してみる。
位置 | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
要素 | 5 | 43 | 7 | 89 | 1 |
■「末尾のイテレータ」を渡す例
#include <algorithm> #include <iostream> int main() { int num[5] = {5, 43, 7, 89, 1}; std::sort(num, num + 4); for (int i = 0; i < 5; i++) { std::cout << num[i] << std::endl; } return 0; }
→ 出力順序:5, 7, 43 ,89, 1
(0 ~ 3 要素まで昇順)
■「末尾の次を指すイテレータ」を渡す例
#include <algorithm> #include <iostream> int main() { int num[5] = {5, 43, 7, 89, 1}; std::sort(num, num + 5); for (int i = 0; i < 5; i++) { std::cout << num[i] << std::endl; } return 0; }
→ 出力順序:1, 5, 7, 43 ,89
(0 ~ 4 要素まで昇順)
■ (おまけ) ソートしたい列が 1 要素
#include <algorithm> #include <iostream> int main() { int num[5] = {5, 43, 7, 89, 1}; std::sort(num + 2, num + 3); for (int i = 0; i < 5; i++) { std::cout << num[i] << std::endl; } return 0; }
→ 出力順序:5, 43, 7, 89 ,2
(変化なし)
範囲外参照をしているように見えるので、少しムズムズする。