6868
6969 </ head >
7070 < body >
71- < header data-kunai-mdinfo ="{"meta": {"header": ["algorithm"], "namespace": ["std::ranges"], "id-type": ["function template"], "cpp": ["cpp20"]}, "sources": [{"id": "30c70e5dca46b91b79413349ee547daec1ce2c4c", "source": "#include <cassert>\n#include <algorithm>\n\nint main()\n{\n int x = 10;\n auto result1 = std::ranges::minmax(x, 11); // decltype(result1) == std::ranges::minmax_result<const int&>\n assert(result1.min == 10); // ok: result1.min \u306f x\u3092\u53c2\u7167\u3057\u3066\u3044\u308b\n //assert(result1.max == 11); // \u672a\u5b9a\u7fa9\u52d5\u4f5c : result1.max\u306f\u5bff\u547d\u304c\u5c3d\u304d\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8(\u53f3\u8fba\u502411)\u3092\u6307\u3057\u3066\u3044\u308b\u305f\u3081\u3001\n // \u305d\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u306f\u306a\u3089\u306a\u3044\n\n // \u69cb\u9020\u5316\u675f\u7e1b\u3092\u4f7f\u7528\u3057\u305f\u5834\u5408\u3082\u540c\u69d8\u306b\u672a\u5b9a\u7fa9\u52d5\u4f5c\u3092\u5f15\u304d\u8d77\u3053\u3059\n // auto [min_val, max_val] = std::ranges::minmax(x, 11);\n // max_val; // \u672a\u5b9a\u7fa9\u52d5\u4f5c : \u53f3\u8fba\u502411\u306e\u5bff\u547d\u306f\u5c3d\u304d\u3066\u3044\u308b\n\n // \u521d\u671f\u5316\u5b50\u30ea\u30b9\u30c8\u3084Range\u3092\u6e21\u3059\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9(2), (3)\u3067\u306f\u3001\u5024\u304c\u8fd4\u3055\u308c\u308b\u305f\u3081\u554f\u984c\u306a\u3044\n auto result2 = std::ranges::minmax({x, 11}); // decltype(result2) == std::ranges::minmax_result<int>\n assert(result2.min == 10); // ok: result2.min \u306f\u30b3\u30d4\u30fc\u3092\u6301\u3063\u3066\u3044\u308b\n assert(result2.max == 11); // ok: result2.max \u306f \u53f3\u8fba\u502411\u306e\u30b3\u30d4\u30fc\u3092\u6301\u3063\u3066\u3044\u308b\n}\n"}, {"id": "9a58b13d8f0a47189c7c3a8d331caf2669f5252f", "source": "#include <array>\n#include <cassert>\n#include <algorithm>\n#include <functional>\n\nint main()\n{\n const auto result1 = std::ranges::minmax(2, 3);\n assert(result1.min == 2 && result1.max == 3);\n\n const auto result2 = std::ranges::minmax(2, 3, std::ranges::greater());\n assert(result2.min == 3 && result2.max == 2);\n\n constexpr auto result3 = std::ranges::minmax({1, 2, 3});\n static_assert(result3.min == 1 && result3.max == 3);\n\n constexpr std::array<int, 3> a = {1, 2, 3};\n\n constexpr auto result4 = std::ranges::minmax(a, std::ranges::greater());\n static_assert(result4.min == 3 && result4.max == 1);\n}\n"}, {"id": "dc42bede395e6c17be9958143560fb63f1036eb7", "source": "#include <algorithm>\n#include <execution>\n#include <iostream>\n#include <vector>\n\nint main() {\n std::vector<int> v = {3, 1, 4, 1, 5, 9, 2, 6};\n\n // \u4e26\u5217\u306b\u6700\u5c0f\u5024\u3068\u6700\u5927\u5024\u3092\u53d6\u5f97\n auto [min_val, max_val] = std::ranges::minmax(std::execution::par, v);\n std::cout << min_val << \", \" << max_val << std::endl;\n}\n"}], "page_id": ["reference", "algorithm", "ranges_minmax"]} ">
71+ < header data-kunai-mdinfo ="{"meta": {"header": ["algorithm"], "namespace": ["std::ranges"], "id-type": ["function template"], "cpp": ["cpp20"]}, "sources": [{"id": "53465b82ec9f0bd288c699e2bed1f28e0429213a", "source": "#include <cassert>\n#include <algorithm>\n\nint main()\n{\n int x = 10;\n auto result1 = std::ranges::minmax(x, 11); // decltype(result1) == std::ranges::minmax_result<const int&>\n assert(result1.min == 10); // ok: result1.min \u306f x\u3092\u53c2\u7167\u3057\u3066\u3044\u308b\n //assert(result1.max == 11); // \u672a\u5b9a\u7fa9\u52d5\u4f5c : result1.max\u306f\u5bff\u547d\u304c\u5c3d\u304d\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8(\u53f3\u8fba\u502411)\u3092\u6307\u3057\u3066\u3044\u308b\u305f\u3081\u3001\n // \u305d\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u306f\u306a\u3089\u306a\u3044\n\n // \u69cb\u9020\u5316\u675f\u7e1b\u3092\u4f7f\u7528\u3057\u305f\u5834\u5408\u3082\u540c\u69d8\u306b\u672a\u5b9a\u7fa9\u52d5\u4f5c\u3092\u5f15\u304d\u8d77\u3053\u3059\n // auto [min_val, max_val] = std::ranges::minmax(x, 11);\n // max_val; // \u672a\u5b9a\u7fa9\u52d5\u4f5c : \u53f3\u8fba\u502411\u306e\u5bff\u547d\u306f\u5c3d\u304d\u3066\u3044\u308b\n\n // \u521d\u671f\u5316\u5b50\u30ea\u30b9\u30c8\u3084Range\u3092\u6e21\u3059\u30aa\u30fc\u30d0\u30fc\u30ed\u30fc\u30c9(2), (3)\u3067\u306f\u3001\u5024\u304c\u8fd4\u3055\u308c\u308b\u305f\u3081\u554f\u984c\u306a\u3044\n auto result2 = std::ranges::minmax({x, 11}); // decltype(result2) == std::ranges::minmax_result<int>\n assert(result2.min == 10); // ok: result2.min \u306f x\u306e\u30b3\u30d4\u30fc\u3092\u6301\u3063\u3066\u3044\u308b\n assert(result2.max == 11); // ok: result2.max \u306f \u53f3\u8fba\u502411\u306e\u30b3\u30d4\u30fc\u3092\u6301\u3063\u3066\u3044\u308b\n}\n"}, {"id": "9a58b13d8f0a47189c7c3a8d331caf2669f5252f", "source": "#include <array>\n#include <cassert>\n#include <algorithm>\n#include <functional>\n\nint main()\n{\n const auto result1 = std::ranges::minmax(2, 3);\n assert(result1.min == 2 && result1.max == 3);\n\n const auto result2 = std::ranges::minmax(2, 3, std::ranges::greater());\n assert(result2.min == 3 && result2.max == 2);\n\n constexpr auto result3 = std::ranges::minmax({1, 2, 3});\n static_assert(result3.min == 1 && result3.max == 3);\n\n constexpr std::array<int, 3> a = {1, 2, 3};\n\n constexpr auto result4 = std::ranges::minmax(a, std::ranges::greater());\n static_assert(result4.min == 3 && result4.max == 1);\n}\n"}, {"id": "dc42bede395e6c17be9958143560fb63f1036eb7", "source": "#include <algorithm>\n#include <execution>\n#include <iostream>\n#include <vector>\n\nint main() {\n std::vector<int> v = {3, 1, 4, 1, 5, 9, 2, 6};\n\n // \u4e26\u5217\u306b\u6700\u5c0f\u5024\u3068\u6700\u5927\u5024\u3092\u53d6\u5f97\n auto [min_val, max_val] = std::ranges::minmax(std::execution::par, v);\n std::cout << min_val << \", \" << max_val << std::endl;\n}\n"}], "page_id": ["reference", "algorithm", "ranges_minmax"]} ">
7272 < nav class ="navbar navbar-default " role ="navigation ">
7373 < div class ="container-fluid ">
7474 < div class ="navbar-header ">
188188
189189 < p class ="text-right "> < small >
190190 最終更新日時(UTC):
191- < span itemprop ="datePublished " content ="2026-04-01T10:22:37 ">
192- 2026年04月01日 10時22分37秒
191+ < span itemprop ="datePublished " content ="2026-04-01T10:36:52 ">
192+ 2026年04月01日 10時36分52秒
193193 </ span >
194194 < br />
195195 < span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
@@ -278,7 +278,7 @@ <h2>備考</h2>
278278< ul >
279279< li > (1) : 引数に右辺値を与えた場合、< code > minmax</ code > の呼び出しを含む式の評価が終わった時点で、返された参照は寿命が切れている(ダングリング)ことに注意:</ li >
280280</ ul >
281- < p > < div class ="yata " id ="30c70e5dca46b91b79413349ee547daec1ce2c4c "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include < a href ="../cassert.html "> <cassert></ a > </ span >
281+ < p > < div class ="yata " id ="53465b82ec9f0bd288c699e2bed1f28e0429213a "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include < a href ="../cassert.html "> <cassert></ a > </ span >
282282< span class ="cp "> #include < a href ="../algorithm.html "> <algorithm></ a > </ span >
283283
284284< span class ="kt "> int</ span > < span class ="w "> </ span > < span class ="nf "> main</ span > < span class ="p "> ()</ span >
@@ -295,7 +295,7 @@ <h2>備考</h2>
295295
296296< span class ="w "> </ span > < span class ="c1 "> // 初期化子リストやRangeを渡すオーバーロード(2), (3)では、値が返されるため問題ない</ span >
297297< span class ="w "> </ span > < span class ="k "> auto</ span > < span class ="w "> </ span > < span class ="n "> result2</ span > < span class ="w "> </ span > < span class ="o "> =</ span > < span class ="w "> </ span > < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> ranges</ span > < span class ="o "> ::</ span > < span class ="n "> minmax</ span > < span class ="p "> ({</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span > < span class ="w "> </ span > < span class ="mi "> 11</ span > < span class ="p "> });</ span > < span class ="w "> </ span > < span class ="c1 "> // decltype(result2) == std::ranges::minmax_result<int></ span >
298- < span class ="w "> </ span > < span class ="n "> < a href ="../cassert/assert.html "> assert</ a > </ span > < span class ="p "> (</ span > < span class ="n "> result2</ span > < span class ="p "> .</ span > < span class ="n "> min</ span > < span class ="w "> </ span > < span class ="o "> ==</ span > < span class ="w "> </ span > < span class ="mi "> 10</ span > < span class ="p "> );</ span > < span class ="w "> </ span > < span class ="c1 "> // ok: result2.min はコピーを持っている </ span >
298+ < span class ="w "> </ span > < span class ="n "> < a href ="../cassert/assert.html "> assert</ a > </ span > < span class ="p "> (</ span > < span class ="n "> result2</ span > < span class ="p "> .</ span > < span class ="n "> min</ span > < span class ="w "> </ span > < span class ="o "> ==</ span > < span class ="w "> </ span > < span class ="mi "> 10</ span > < span class ="p "> );</ span > < span class ="w "> </ span > < span class ="c1 "> // ok: result2.min は xのコピーを持っている </ span >
299299< span class ="w "> </ span > < span class ="n "> < a href ="../cassert/assert.html "> assert</ a > </ span > < span class ="p "> (</ span > < span class ="n "> result2</ span > < span class ="p "> .</ span > < span class ="n "> max</ span > < span class ="w "> </ span > < span class ="o "> ==</ span > < span class ="w "> </ span > < span class ="mi "> 11</ span > < span class ="p "> );</ span > < span class ="w "> </ span > < span class ="c1 "> // ok: result2.max は 右辺値11のコピーを持っている</ span >
300300< span class ="p "> }</ span >
301301</ code > </ pre > </ div >
0 commit comments