c++ - 查找范围内的最大和第二大元素

标签 c++ sorting stl ranking visual-c++-2005

如何在不删除最大元素并重新搜索的情况下找到上面的内容?有没有更有效的方法来做到这一点?这些元素是否重复并不重要。

最佳答案

for (e: all elements) {
 if (e > largest) {
   second = largest;
   largest = e;
 } else if (e > second) {
   second = e;
 }
}

您可以将 largestsecond 初始化为适当的下限,或者初始化为列表中的前两项(检查哪个更大,不要忘记检查列表是否至少有两项)

关于c++ - 查找范围内的最大和第二大元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1412751/

相关文章:

c++ - 使用 std::strings 和 std::vectors 将值插入 std::map 时遇到问题

c++ - Linux 包管理器将如何处理 C++20 模块?

c++ - 如何确保对象只有一个线程

python - 如何排序(key=lambda x :) implemented behind the scene?

c# - 根据 List<string> 的顺序对 List<int> 进行排序

c++ - 容器中的元素多样性?

c++ - 为什么我不能插入指向多重集的 const 指针?

c++ - 怎么可能只让设备使用 pjsua2 进行捕获或播放

c++ - 在进入 OpenGL/Direct3D 之前学习 3d 软件光栅化和理论有什么好处?

排序英式日期