#include <algorithm> template <class T> pair<const T&, const T&> minmax(const T& a, const T& b); template <class T> pair<const T&, const T&> minmax(const T& a, const T& b, Compare comp); template <class T> pair<const T&, const T&> minmax(initializer_list<T> t); template <class T> pair<const T&, const T&> minmax(initializer_list<T> t, Compare comp);
#include <stdio.h> #include <vector> #include <algorithm> using namespace std; int main() { // max, min, minmax printf("max, min, minmax\n"); int kmax1 = max(5, 3); int kmax2 = max({5, 8, 1, 3}); int kmin1 = min(5, 3); int kmin2 = min({5, 8, 1, 3}); printf(" 最大値 %d %d 最小値 %d %d\n", kmax1, kmax2, kmin1, kmin2); pair<int, int> p1 = minmax(5, 3); pair<int, int> p2 = minmax({5, 8, 1, 3}); printf(" 最大値,最小値 %d %d 最大値,最小値 %d %d\n", p1.second, p1.first, p2.second, p2.first); // max_element, min_element, minmax_element printf("max_element, min_element, minmax_element\n"); vector<int> v {5, 8, 1, 3}; vector<int>::iterator imax = max_element(v.begin(), v.end()); vector<int>::iterator imin = min_element(v.begin(), v.end()); printf(" 最大値 %d 最小値 %d\n", *imax, *imin); pair<vector<int>::iterator, vector<int>::iterator> ip = minmax_element(v.begin(), v.end()); printf(" 最大値 %d 最小値 %d\n", *(ip.second), *(ip.first)); // clamp printf("clamp\n"); for (int i1 = 0; i1 < 10; i1++) { int x = clamp(i1, 3, 7); printf(" %d", x); } printf("\n"); return 0; }
max, min, minmax 最大値 5 8 最小値 3 1 最大値,最小値 5 3 最大値,最小値 8 1 max_element, min_element, minmax_element 最大値 8 最小値 1 最大値 8 最小値 1 clamp 3 3 3 3 4 5 6 7 7 7
菅沼ホーム | 本文目次 | 演習問題解答例 | 付録目次 | 索引 |