thrust::minmax_element
Defined in thrust/extrema.h
- 
template<typename ForwardIterator, typename BinaryPredicate>
 thrust::pair<ForwardIterator, ForwardIterator> thrust::minmax_element(ForwardIterator first, ForwardIterator last, BinaryPredicate comp)
- minmax_elementfinds the smallest and largest elements in the range- [first, last). It returns a pair of iterators- (imin, imax)where- iminis the same iterator returned by- min_elementand- imaxis the same iterator returned by- max_element. This function is potentially more efficient than separate calls to- min_elementand- max_element.- The following code snippet demonstrates how to use - minmax_elementto find the smallest and largest elements of a collection of key-value pairs.- #include <thrust/extrema.h> #include <thrust/pair.h> struct key_value { int key; int value; }; struct compare_key_value { __host__ __device__ bool operator()(key_value lhs, key_value rhs) { return lhs.key < rhs.key; } }; ... key_value data[4] = { {4,5}, {0,7}, {2,3}, {6,1} }; thrust::pair<key_value*,key_value*> extrema = thrust::minmax_element(data, data + 4, compare_key_value()); // extrema.first == data + 1 // *extrema.first == {0,7} // extrema.second == data + 3 // *extrema.second == {6,1} - See also - min_element - See also - max_element - Parameters
- first – The beginning of the sequence. 
- last – The end of the sequence. 
- comp – A binary predicate used for comparison. 
 
- Template Parameters
- ForwardIterator – is a model of Forward Iterator, and - ForwardIterator's- value_typeis convertible to both- comp'sfirst and second argument type.
- BinaryPredicate – is a model of Binary Predicate. 
 
- Returns
- A pair of iterator pointing to the smallest and largest elements of the range - [first, last), if it is not an empty range;- last, otherwise.