搜索向量成员的前n%个C ++

'

让我们定义

struct A
{ 
int m;
...
}

std::vector<A> vec; //a large vector (magnitude of million members)

我有兴趣找到vec的前2%成员,这些成员的m方法价值最高

为此,我在想这样的事情:

std::multimap<int, A> top_members;

const auto nr_top = std::lround(vec.size() * 0.02);
for (auto it = vec.begin(); it != vec.end(); ++it)
  {
  if(top_members.size() == nr_top + 1)
    top_members.erase(std::prev(top_members.end()));
  else
    top_members[it->m] = *it
  }

您是否认为任何更快的解决方案?

菲利普·尼尔森

std::partial_sort元素的数量要排序的元素的数量的复杂性在n log m哪里您可以使用它仅对前2%进行排序nm

const auto nr_top = std::lround(vec.size() * 0.02);
std::partial_sort(vec.begin(), vec.begin() + nr_top, vec.end(),
  [](auto a, auto b){return a > b}
);
// the top 2% will be at the front of the vector

如果您需要使用其他容器中的前2%,则可以std::partial_sort_copy改用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

连接列表中两个向量成员的数据

来自分类Dev

具有向量成员的对象的破坏

来自分类Dev

如何修改向量成员的值?

来自分类Dev

无法访问类的向量成员

来自分类Dev

检查两个匹配元素之间是否找到向量成员

来自分类Dev

如何初始化静态向量成员?

来自分类Dev

具有 const 向量成员的类的复制构造函数

来自分类Dev

C ++ 11中的常量成员变量

来自分类Dev

c ++:类实例的向量,按类成员值搜索失败

来自分类Dev

初始化后,Const_iterator成员变量未指向向量成员变量的开头

来自分类Dev

将unique_ptr的向量传递给对象。向量成为成员变量。正确的方法?

来自分类Dev

如何使用“ e”个变量成员创建事件?

来自分类Dev

访问变量成员

来自分类Dev

如何在类模板的构造函数中初始化向量成员变量

来自分类Dev

如何使用初始化列表来初始化2D向量成员?

来自分类Dev

如何在类定义中初始化向量成员变量?

来自分类Dev

VS2013:优化具有向量成员的类的移动语义的潜在问题?

来自分类Dev

如何使用多态从基类访问派生类向量成员?

来自分类Dev

是否有用于检查向量成员资格的R函数?

来自分类Dev

使用while循环时如何在控制台中输入向量成员?

来自分类Dev

VS2013:优化具有向量成员的类的移动语义的潜在问题?

来自分类Dev

如何使用多态性从基类访问派生类向量成员?

来自分类Dev

在C ++中将集合的前n个值复制到向量中的简便方法

来自分类Dev

在结构向量中搜索一个数据成员,然后打印所有匹配的数据成员

来自分类Dev

按班级成员搜索班级向量

来自分类Dev

仅初始化结构或数组的前n个成员

来自分类Dev

PHP常量成员变量

来自分类Dev

cin N个元素向量C ++

来自分类Dev

对于向量中的每个元素,求和前n个元素

Related 相关文章

  1. 1

    连接列表中两个向量成员的数据

  2. 2

    具有向量成员的对象的破坏

  3. 3

    如何修改向量成员的值?

  4. 4

    无法访问类的向量成员

  5. 5

    检查两个匹配元素之间是否找到向量成员

  6. 6

    如何初始化静态向量成员?

  7. 7

    具有 const 向量成员的类的复制构造函数

  8. 8

    C ++ 11中的常量成员变量

  9. 9

    c ++:类实例的向量,按类成员值搜索失败

  10. 10

    初始化后,Const_iterator成员变量未指向向量成员变量的开头

  11. 11

    将unique_ptr的向量传递给对象。向量成为成员变量。正确的方法?

  12. 12

    如何使用“ e”个变量成员创建事件?

  13. 13

    访问变量成员

  14. 14

    如何在类模板的构造函数中初始化向量成员变量

  15. 15

    如何使用初始化列表来初始化2D向量成员?

  16. 16

    如何在类定义中初始化向量成员变量?

  17. 17

    VS2013:优化具有向量成员的类的移动语义的潜在问题?

  18. 18

    如何使用多态从基类访问派生类向量成员?

  19. 19

    是否有用于检查向量成员资格的R函数?

  20. 20

    使用while循环时如何在控制台中输入向量成员?

  21. 21

    VS2013:优化具有向量成员的类的移动语义的潜在问题?

  22. 22

    如何使用多态性从基类访问派生类向量成员?

  23. 23

    在C ++中将集合的前n个值复制到向量中的简便方法

  24. 24

    在结构向量中搜索一个数据成员,然后打印所有匹配的数据成员

  25. 25

    按班级成员搜索班级向量

  26. 26

    仅初始化结构或数组的前n个成员

  27. 27

    PHP常量成员变量

  28. 28

    cin N个元素向量C ++

  29. 29

    对于向量中的每个元素,求和前n个元素

热门标签

归档