笨办法
当我们有一个vector<int>
型数组vec时,我们只需要获取它的最大值,而又不想打乱它的顺序,就会很头疼,起初,我是这么写的。
vector<int> copy;//copy一个数组,浪费空间和时间
sort(copy.begin(), copy.end(), greater<int>());//逆序排列
int max = copy[0];
好方法
自己这么写之后,我就断定,答案肯定不是这么写的,一看果然,很强的方法,主要还是自己对STL的vector不够熟悉。
int max = *max_element(vec.begin(), vec.end());
一行代码搞定,唯美!
总结
C++STL中的vector库有自带的最大值函数max_element(起始,终止),只不过返回的是指针,需要用间接引用符号*来获取值即可。当然,也有min_element(),这个不只对vector可用,对int[]数组也能用。