STL vector求最大和最小值

本文介绍了如何使用C++中的vector容器来存储整数,并通过`max_element`和`min_element`函数找到向量Val中的最大值和最小值。适合初学者理解基本算法应用。

vector<int> Val;

for(int i=0;i<5;i++)

{

        Val.push_back(i);

}

int nMax = *max_element(Val.begin(),Val.end());//求最大值

int nMin = *min_element(Val.begin(),Val.end());//求最小值

### 使用引用实现最大值最小值函数 在 C++ 中,可以通过传递引用的方式设计自定义的最大值 (`max`) 和最小值 (`min`) 函数。这种方式能够避免不必要的拷贝操作,尤其当处理大型对象时效率更高。 以下是基于引用实现 `max` 和 `min` 的示例代码: ```cpp #include <iostream> // 自定义 max 函数,参数通过引用传入 template<typename T> T& max(T& a, T& b) { return (a > b) ? a : b; } // 自定义 min 函数,参数通过引用传入 template<typename T> T& min(T& a, T& b) { return (a < b) ? a : b; } int main() { int x = 10, y = 20; std::cout << "Max value is: " << max(x, y) << std::endl; // 输出较大值 std::cout << "Min value is: " << min(x, y) << std::endl; // 输出较小值 return 0; } ``` 上述代码展示了如何利用模板函数以及引用机制来实现通用的 `max` 和 `min` 函数[^1]。注意,在这种情况下,返回的是引用而非副本,因此可以直接修改原始变量的内容。 如果需要针对数组中的多个元素最大值最小值,则可借助标准库中的 `<algorithm>` 头文件提供的工具函数 `std::min_element` 和 `std::max_element` 来完成此任务[^4]。下面是一个具体例子: ```cpp #include <iostream> #include <vector> #include <algorithm> // 需要包含 algorithm 头文件 int main() { std::vector<int> numbers = {3, 7, 2, 9, 4}; auto result_max = *std::max_element(numbers.begin(), numbers.end()); auto result_min = *std::min_element(numbers.begin(), numbers.end()); std::cout << "Maximum element in array: " << result_max << std::endl; std::cout << "Minimum element in array: " << result_min << std::endl; return 0; } ``` 这段程序演示了如何运用 STL 提供的功能快速定位容器内的极端数值。 #### 初始化技巧 对于更复杂的数据结构或者动态输入场景下寻找全局最值的情况,推荐先设定初始条件为边界情况下的极限值,比如 INT_MIN 或者 INT_MAX,这样无论后续加入什么新数都不会影响最终判断准确性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值