メインコンテンツへスキップ

3要素以上のstd::min, std::maxを取る

·158 文字·
技術解説 C++ STL
komori-n
著者
komori-n

c++03の知識で止まっていたので懺悔のメモ。

std::min, std::max, std::minmax で3要素以上にわたる演算をしたい場合は、std::initializer_list<T> 型を引数に取るオーバーロードを用いればよい。

#include <algorithm>
#include <iostream>

int main() {
  std::cout << std::max({3, 3, 4}) << std::endl;
  // => 4

  int x = 2;
  int y = 6;
  int z = 4;
  std::cout << std::min({x, y, z}) << std::endl;
  // => 2
}

参考:max – cpprefjp C++日本語リファレンス

Related

c++14でできてc++11ではできないことまとめ
·2409 文字
技術解説 C++ STL
スマートポインタをdynamic_castしたい
·683 文字
技術解説 C++ STL
安定な優先順位付きキュー(stable_priority_queue)を作る
·2340 文字
技術解説 C++ STL