小编Joh*_*ski的帖子

嵌套向量与连续数组的性能影响

有没有可靠的测试清楚地显示访问和写入嵌套向量与C++的内置数组之间的性能差异?我听说使用嵌套(多维)向量通常比访问单个数组中的元素(其中所有元素都存储在连续的内存中)有一些性能开销,但这对我来说似乎只是假设.我还没有看到任何实际显示这些差异的测试.它们重要吗?我确信它取决于场景,但作为一个缺乏经验的程序员,我不太确定这些差异在多大程度上变得显着.

c++ arrays vector multidimensional-array

5
推荐指数
1
解决办法
362
查看次数

使用整数初始化列表初始化长双精度向量

假设我有一个简单的类:

class Pvector
{
  private:
  std::vector<long double> point_list;

  public:
  Pvector(std::initializer_list<long double> coords) : point_list(coords)
  {}
  Pvector(std::initializer_list<int> coords) : point_list(coords)
  {}
};
Run Code Online (Sandbox Code Playgroud)

这不会编译,因为std::vector模板化类型long double无法从模板化类型初始化列表中初始化自身int。然而,这相当不方便,因为删除了第二个构造函数后,我无法在代码中执行以下操作:

Pvector piece_movement({E.X - S.X, E.Y - S.Y, E.Z - S.Z});
Run Code Online (Sandbox Code Playgroud)

这是因为我的算术运算的结果类型是 类型int。所以我似乎陷入了困境。我希望能够将整数直接传递到 for 的构造函数中Pvector,但我仍然希望point_list是类型long double并且(以某种方式)使用我传入的整数进行初始化。我该如何去做呢?

c++ initialization list vector

5
推荐指数
1
解决办法
906
查看次数