C++のstd::minで複数の値から一番小さいものを取るには
2020/05/24 14:05
C++で 3 つ以上の値から min を取るとき、複数渡すとエラーになって困った・・
#include <bits/stdc++.h>
int main() {
int a = 4, b = 2, c = 10, d = 4, e = 2;
cout << std::min(a,b,c,d,e); // エラー!
}
list が渡せる
素直にリファレンス見ればよかった。min には list を渡せる。
// (3)
template <class T>
constexpr T min(initializer_list<T> t);
つまり初期化子リストを渡せばよい。()のあとにさらに{}で囲むとエラーじゃなくなる。
#include <bits/stdc++.h>
int main() {
int a = 4, b = 2, c = 10, d = 4, e = 2;
cout << std::min({a,b,c,d,e}); // 2!
}