相关疑难解决方法(0)

对自定义对象的矢量进行排序

如何排序包含自定义(即用户定义)对象的向量.
可能应该使用标准STL算法与谓词(函数或函数对象)一起排序,该谓词将在自定义对象中的一个字段(作为排序键)上操作.
我是在正确的轨道上吗?

c++ sorting stl

231
推荐指数
9
解决办法
36万
查看次数

C for循环索引:在新CPU中前向索引更快?

在我订阅的邮件列表中,两位相当知识渊博的(IMO)程序员正在讨论一些优化的代码,并说出以下内容:

在5 - 8年前发布的CPU上,向后循环迭代(例如 for (int i=x-1; i>=0; i--) {...})稍微快一些,因为与i零比较比将其与其他数字相比更有效.但是对于非常近期的CPU(例如,从2008年到2009年),推测性加载器逻辑使得如果for循环向前迭代(例如 for (int i=0; i< x; i++) {...})它更好地工作.

我的问题是,这是真的吗?最近是否更改了CPU实现,这样前向循环迭代现在比后向迭代有优势?如果是这样,那有什么解释呢?改变了什么?

(是的,我知道,过早的优化是所有邪恶的根源,在考虑微优化之前检查我的算法等等...大多数我只是好奇)

c optimization for-loop

18
推荐指数
4
解决办法
5605
查看次数

定义<比较器时,按降序对对象排序?

我有一个班级A和一个<比较器.我怎样才能用它们来排序的数组A中的降序顺序?

class A {
...
};

class LessA {
   bool operator()(const A& a1, const A& a2) const {
   ...
   }
}

vector<A> v;
sort(v.begin(), v.end(), ???);
Run Code Online (Sandbox Code Playgroud)

我想我应该用???基于的东西替换LessA,但我无法弄清楚应该在那里进行什么.我想过使用lambda函数,但我一直在寻找更短的东西.

c++ sorting comparator c++11

7
推荐指数
2
解决办法
4674
查看次数

iterator vs reverse_iterator

std::map用来存储很多元素(元素对),我有一点"怀疑".更重要的是有效地遍历我所有的元素std::map,iteratorreverse_iterator

c++ performance stl stdmap

5
推荐指数
2
解决办法
4530
查看次数

在C++中调用std :: sort时使用std :: greater的语法

对反向排序容器的推荐方法(例如:按降序排序向量)似乎是:

std::sort(numbers.begin(), numbers.end(), std::greater<int>());

我理解第三个参数是一个函数或函数,它帮助sort()进行比较,而std :: greater是一个模板函子,但我不明白这里发生了什么.我的C++非常生疏,如果这些都是愚蠢的问题,请耐心等待:为什么那之后std::greater<int>有括号?我们std::greater在这里创建一个新对象吗?在这种情况下,为什么我们不需要new这里的关键字?

c++ stl std

4
推荐指数
1
解决办法
216
查看次数

std :: sort降序与运算符重载

我有一个std::vector对象,我重载了<运算符.

我如何使用std::sort降序排序(无需编写我自己的Comparator)?

c++ sorting std c++11

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

在我的程序中,它按升序对数组进行编程,但我正在尝试对其进行修改,以便按降序进行打印

在我的程序中,它以升序打印数组,但我正在尝试对其进行修改,以便以降序打印。可以使用一些帮助。

#include <iostream>
#include <algorithm>
int main()
{
    const int length = 5;
    int array[length] = {35, 67, 75, 60, 11};

    std::sort(std::begin(array), std::end(array));
    for(int i = 0; i < length; i++)
    {
      std::cout << array[i] << ' ';
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ arrays bubble-sort

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

降序的最佳方法是什么?

所有,

std :: sort()将按升序排序.有一种简单,方便,快捷的降序方式吗?

谢谢.

c++ sorting stl

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

使用std :: sort以降序排序类的向量

我有一个名为HPC_user的类,并尝试按降序排列HPC_user的向量,其中一个成员变量为活动.似乎std :: sort应该用第三个参数完成工作.所以我遵循这个线程并定义了一个更大的新结构.

按降序对矢量进行排序

struct cpuComp
{
  bool operator()(HPC_user const & a, HPC_user const & b)
  {
  return a.get_activity() > b.get_activity();
  }
};

int main()
{
  // do something;
    std::vector<HPC_user> users = db2class(ins, days);
  std::sort(users[0], users[len], cpuComp());
//.....
}
Run Code Online (Sandbox Code Playgroud)

当我编译代码时,我遇到了一些错误:

    In file included from db2class.cpp:3:
    In file included from /usr/include/c++/4.2.1/iostream:44:
    In file included from /usr/include/c++/4.2.1/ostream:44:
    In file included from /usr/include/c++/4.2.1/ios:44:
    In file included from /usr/include/c++/4.2.1/bits/char_traits.h:45:
    In file included from /usr/include/c++/4.2.1/bits/stl_algobase.h:74:
    /usr/include/c++/4.2.1/bits/stl_iterator_base_types.h:128:35: error: no type named 'iterator_category' in 'HPC_user'
          typedef typename …
Run Code Online (Sandbox Code Playgroud)

c++ sorting class vector

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

标签 统计

c++ ×8

sorting ×5

stl ×4

c++11 ×2

std ×2

arrays ×1

bubble-sort ×1

c ×1

class ×1

comparator ×1

for-loop ×1

optimization ×1

performance ×1

stdmap ×1

vector ×1