std::min_element
提供:cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Defined in header <algorithm>
|
||
template< class ForwardIt > ForwardIt min_element( ForwardIt first, ForwardIt last ); |
(1) | |
template< class ForwardIt, class Compare > ForwardIt min_element( ForwardIt first, ForwardIt last, Compare comp ); |
(2) | |
レンジ
[first, last)
で最小の要素を検索します。最初のバージョンは、値を比較するoperator<使用して、2番目のバージョンは、指定された比較関数comp
を使用しています.Original:
Finds the smallest element in the range
[first, last)
. The first version uses operator< to compare the values, the second version uses the given comparison function comp
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
目次 |
[編集] パラメータ
first, last | - | 検討する範囲を定義前方反復子
Original: forward iterators defining the range to examine The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
cmp | - | comparison function which returns true if if *a is less than *b . The signature of the comparison function should be equivalent to the following: bool cmp(const Type1 &a, const Type2 &b); The signature does not need to have const &, but the function must not modify the objects passed to it. |
Type requirements | ||
-ForwardIt must meet the requirements of ForwardIterator .
|
[編集] 値を返します
レンジ
[first, last)
で最小の要素を指すイテレータ。範囲内のいくつかの要素が最小の要素と同等である場合は、まずそのような要素を指すイテレータを返す。戻りlast
範囲が空の場合は.Original:
Iterator to the smallest element in the range
[first, last)
. If several elements in the range are equivalent to the smallest element, returns the iterator to the first such element. Returns last
if the range is empty.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集] 複雑
まさにmax(N-1,0)比較、どこN = std::distance(first, last).
Original:
Exactly max(N-1,0) comparisons, where N = std::distance(first, last).
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集] 可能な実装
First version |
---|
template<class ForwardIt> ForwardIt min_element(ForwardIt first, ForwardIt last) { if (first == last) return last; ForwardIt smallest = first; ++first; for (; first != last; ++first) { if (*first < *smallest) { smallest = first; } } return smallest; } |
Second version |
template<class ForwardIt, class Compare> ForwardIt min_element(ForwardIt first, ForwardIt last, Compare comp) { if (first == last) return last; ForwardIt smallest = first; ++first; for (; first != last; ++first) { if (comp(*first, *smallest)) { smallest = first; } } return smallest; } |
[編集] 例
#include <algorithm> #include <iostream> #include <vector> int main() { std::vector<int> v{3, 1, 4, 1, 5, 9}; std::vector<int>::iterator result = std::min_element(v.begin(), v.end()); std::cout << "min element at: " << std::distance(v.begin(), result); }
Output:
min element at: 1
[編集] も参照してください
範囲内の最大の要素を返します Original: returns the largest element in a range The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) | |
(C++11) |
範囲内の最小と最大の要素を返します Original: returns the smallest and the largest element in a range The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) |
二つの要素のうち、小さい方を返します Original: returns the smaller of two elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) |