如何查找容器中第n大的数

li4c 2014-10-30 11:39:44
在一个容器中,有1000个整数,要求找出其中第888大的数,容器中的数可能有重复。这个怎么做?
...全文
172 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
li4c 2014-10-30
  • 打赏
  • 举报
回复
引用 7 楼 lovesmiles 的回复:
[quote=引用 5 楼 u013163178 的回复:] [quote=引用 3 楼 lovesmiles 的回复:] 容器也分很多种,具体问题具体分析。
vector<int> 吧[/quote] 排序,去重,剩下的第n个就是要求的[/quote] 这是个好方法,可是如果1000个元素,排序去重之后只有300个了,那么就不存在第888个了,我懂了,这时候第888大的元素就是第300个元素 比如说 容器 2 2 2 2 2 2 3,求第三大的元素,排序去重之后2 , 3了。第3的元素应该是3,这个方法好。
勤奋的小游侠 2014-10-30
  • 打赏
  • 举报
回复
引用 5 楼 u013163178 的回复:
[quote=引用 3 楼 lovesmiles 的回复:] 容器也分很多种,具体问题具体分析。
vector<int> 吧[/quote] 排序,去重,剩下的第n个就是要求的
li4c 2014-10-30
  • 打赏
  • 举报
回复
引用 2 楼 bjym1987 的回复:
排序 一目了然
元素是有重复的啊,1 1 2 2 5 6 1 ,这个第2大的元素是2不是1啊
li4c 2014-10-30
  • 打赏
  • 举报
回复
引用 3 楼 lovesmiles 的回复:
容器也分很多种,具体问题具体分析。
vector<int> 吧
mujiok2003 2014-10-30
  • 打赏
  • 举报
回复
std::nth_element
勤奋的小游侠 2014-10-30
  • 打赏
  • 举报
回复
容器也分很多种,具体问题具体分析。
老王爱上猫 2014-10-30
  • 打赏
  • 举报
回复
排序 一目了然
难题 2014-10-30
  • 打赏
  • 举报
回复
排序,再就简单了
707wk 2014-10-30
  • 打赏
  • 举报
回复
去重复排序。。。
ri_aje 2014-10-30
  • 打赏
  • 举报
回复
去重,然后 nth_element

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧