C++中,如何找到一个vector中最大的元素

打印 上一主题 下一主题

主题 847|帖子 847|积分 2541

动态规划中,常常需要找到一个线性表中最大的元素,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企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小小小幸运

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表