ToB企服应用市场:ToB评测及商务社交产业平台

标题: C++中,如何找到一个vector中最大的元素 [打印本页]

作者: 小小小幸运    时间: 2024-11-8 15:11
标题: C++中,如何找到一个vector中最大的元素
动态规划中,常常需要找到一个线性表中最大的元素,C++ 最常用的是vector,而不是 C 中的数组,固然布局更加复杂,但是用起来更方便。就连 C++ 创始人 Bjarne Stroustrup 都推荐使用vector,如下是《A Tour of C++ Third Edition》中的内容,而且也强调不用担心效率问题:

C++ 算法库中有相应的找到最大值的算法。所以第一步导入库:
  1. #include <algorithm>
复制代码
相应算法是max_element:获取最大的元素,但是返回值是一个迭代器。 使用方法如下:
  1. int main() {
  2.         //测试数组
  3.     std::vector<int> nums = {2,7,9,3,1};
  4.     //存放最大值的迭代器
  5.     std::vector<int>::iterator maxNum = max_element(nums.begin(),nums.end());
  6.         //输出最大值
  7.     cout << *maxNum << endl;
  8.    
  9.     return 0;
  10. }
复制代码
  需要注意还有个叫max的函数,谁人是找两个元素里较大的一个的,不是找数组里的。
  那么如何获取这个最大值的位置呢?这里需要使用distance函数:
  1. int main() {
  2.         //测试数组
  3.     std::vector<int> nums = {2,7,9,3,1};
  4.     //存放最大值的迭代器
  5.     std::vector<int>::iterator maxNum = max_element(nums.begin(),nums.end());
  6.         //通过distance得到最大值和第一个元素之间的距离,得到最大值的下标
  7.     cout << distance(nums.begin(), maxNum) << endl;
  8.    
  9.     return 0;
  10. }
复制代码
盼望能帮到有需要的人~

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4