inputiterator min_element (inputiterator beg, inputiterator end);
inputiterator min_element (inputiterator beg, inputiterator end, compfunc op);
inputiterator max_element (inputiterator beg, inputiterator end);
inputiterator max_element (inputiterator beg, inputiterator end, compfunc op);
功能:所有這些演算法都返回區間[beg, end)中的最大或最小值的位置
備註:a、上述無op引數版本以operator《進行元素比較
b、op用來比較兩個元素:op(elem1, elem2)如果第乙個元素小於第二個元素,應當返回true
c、如果存在多個最大或最小值,上述演算法返回找到的第乙個最大或最小值
d、op不應該改動傳進去的引數
e、時間複雜度:線性
class cpeople
cpeople(int nage, string strname):m_nage(nage),m_strname(strname){}
int get_age()
string get_name()
friend ostream& operator<<(ostream &ouput, cpeople people);
};ostream & operator<<(ostream &output , cpeople people)
bool compare(cpeople people1, cpeople people2)
int main(int argc, char *argv)
; vectorvec1(arrpeople, arrpeople + sizeof(arrpeople)/sizeof(arrpeople[0]));
// 查詢最小值
vector::const_iterator itervec = min_element(vec1.begin(),vec1.end(), compare);
if (itervec != vec1.end())
cout << *itervec;
// 查詢最大值
vector::const_iterator itervec1 = max_element(vec1.begin(),vec1.end(), compare);
if (itervec1 != vec1.end())
cout << *itervec1;
return 0;
}
最大最小值
示例一 maximum lambda x,y x y x x y y 注意 x y 返回的是0或者1 minimum lambda x,y x y y x y x a 10 b 20 print the largar one is d maximum a,b print the lower one ...
最大值 最小值
求最大最小的時候有點小技巧,就是我們兩個兩個的比較,把大個跟當前最大比較,小的跟當前最小的比較,這樣就會節約一點比較時間,有原來的2 n到3 n 2。include include 得到最大最小值 int getmaxmin int ndata,int nlen,int pnmax,int pnmi...
9 1最大最小值
問1 得到最大或最小的話,比較次數?n 1 問2 同時的到最大最小,比較次數?奇數 3 n 2 偶數 1 3 n 2 2 附上 public static void main string args system.out.println minmax a 同時取最大最小 public static ...