优化一下这段代码void maxValue(std::vector<int> number,int &max, int &index) { int m; m = number[0]; for (int i = 0; i < number.size(); ++i) { if(i<number.size()-1) m = MAX(m, number[i+1]); else if(i==number.size()-1) break; } max = m; for(int i = 0; i < number.size(); ++i) { if(m == number[i]) { index = i; } } }
时间: 2023-05-13 10:06:13 浏览: 70
c#中将uint值转换成int的实例方法
5星 · 资源好评率100%
size){
int max = number[0];
for(int i=1;i<size;i++){
if(number[i]>max){
max = number[i];
}
}
std::cout<<"最大值为:"<<max<<std::endl;
}
可以将循环条件改为 i < size,这样可以避免数组越界的问题。同时,可以将函数参数改为 const std::vector<int>& number,这样可以避免不必要的拷贝。修改后的代码如下:
void maxValue(const std::vector<int>& number, int size){
int max = number[0];
for(int i=1; i<size; i++){
if(number[i] > max){
max = number[i];
}
}
std::cout << "最大值为:" << max << std::endl;
}
阅读全文