小编cel*_*lta的帖子

从容器中获取前5个算法?

我有一个类(对象),User.该用户有2个私有属性,"名称"和"受欢迎程度".我将对象存储到向量(容器)中.

从容器中,我需要找到前5位最受欢迎的用户,我该怎么做?(我有一个丑陋的代码,我会在这里发布,如果你有更好的方法,请告诉我.如果你认为矢量不是一个好的选择,请随意使用其他容器,但请仅使用:map或multimap,列表,向量或数组,因为我只知道如何使用它们.)我目前的代码是:

int top5 = 0, top4 = 0, top3 = 0, top2 = 0, top1 = 0;
vector<User>::iterator it;

for (it = user.begin(); it != user.end(); ++it) 
{
    if( it->getPopularity() > top5){
        if(it->getPopularity() > top4){
            if(it->getPopularity() > top3){
                if(it->getPopularity() > top2){
                    if(it->getPopularity() > top1){
                        top1 = it->getPopularity();
                        continue;
                    } else {
                        top2 = it->getPopularity();
                        continue;
                    }
                } else {
                    top3 = it->getPopularity();
                    continue;
                }
            }
        } else {
            top4 = it->getPopularity();
            continue;
        }
    } else {
        top5 = it->getPopularity(); …
Run Code Online (Sandbox Code Playgroud)

c++ sorting algorithm

2
推荐指数
1
解决办法
609
查看次数

c ++中数组的动态大小?

我很迷惑.我不知道应该使用哪些容器.我先告诉你我需要什么.基本上我需要一个可以存储X个Object的容器(并且对象的数量是未知的,它可能是1到50k).

我读了很多,在这里数组vs列表它说:如果对象的数量未知(我不知道如何在C++中调整数组的大小),数组需要调整大小,并且它还声明如果使用链表,如果你想搜索某个项目,它将从第一个到第二个循环(迭代)(反之亦然),而数组可以指定"索引处的数组对象".

然后我去了另一个解决方案,地图,矢量等.像这一个:数组与矢量.一些响应者说从不使用数组.

我是C++的新手,我之前只使用过数组,向量,列表和地图.现在,就我的情况而言,你建议我使用什么样的容器?让我重新说一下我的要求:

  • 需要成为一个容器
  • 存储的对象数量未知但是很大(可能是1到40k)
  • 我需要遍历容器来查找特定对象

c++ arrays containers list vector

0
推荐指数
1
解决办法
502
查看次数

标签 统计

c++ ×2

algorithm ×1

arrays ×1

containers ×1

list ×1

sorting ×1

vector ×1