小编Mic*_*hal的帖子

如何强制pow(float,int)返回float

float pow(float base, int iexp )在C++ 11中删除了重载的函数,现在pow返回一个double.在我的程序中,我计算了很多这些(单精度),我对如何做到最有效的方式感兴趣.

是否有一些特殊功能(在标准库或任何其他)具有上述签名?

如果没有,在任何其他操作(将其他所有内容都投入)或者转换为使用重载函数之前,是否更好(在单精度方面的性能方面)显式地pow转换结果?floatdoubleiexpfloatfloat pow(float base, float exp)

编辑:为什么我需要float和不使用double

主要原因是RAM - 我需要数十或数百GB,因此这种减少是巨大的优势.所以我需要float得到float.现在我需要最有效的方法来实现这一目标(减少演员阵容,使用已经优化的算法等).

c++ pow c++11

10
推荐指数
1
解决办法
1204
查看次数

如何在类中实现标准迭代器

我有一些类通常使用标准容器作为底层字段.例如,我有一个班级

template <typename T>
class Vec_3D
{
public:
    /* ... */
    std::array<T, 3> vec;
    /* ... */
};
Run Code Online (Sandbox Code Playgroud)

它只有一个变量vec,其余的只是我在处理矢量时需要的函数.我希望能够使用基于范围的for循环,例如

Vec_3D<double> vec;
for (double val : vec) {/*...*/}
Run Code Online (Sandbox Code Playgroud)

这应该是很容易迭代的std::array<double, 3>.

如何在我的类中实现迭代器,而这又应该调用迭代器std::array<T, 3>

我从这个问题开始,并尝试在我的类中定义迭代器

typedef std::iterator<std::random_access_iterator_tag, T, ptrdiff_t, T*, T&> iterator;
typedef std::iterator<std::random_access_iterator_tag, const T, ptrdiff_t, const T*, const T&> const_iterator;

inline iterator begin() noexcept { return vec.begin(); }
inline const_iterator cbegin() const noexcept { return vec.cbegin(); }
inline iterator end() noexcept { return …
Run Code Online (Sandbox Code Playgroud)

c++ iterator c++11

7
推荐指数
3
解决办法
9073
查看次数

如何在构造向量时摆脱(一)不必要的副本?

我有一个class A处理我的资源(非常大).现在我需要一个这样的矢量std::vector<A> vec_of_A (3, A(int N)).问题是vector首先构造临时对象A(int N),然后从中复制构造三次然后销毁该临时对象.由于我A(int N)分配了相当大的内存,我最终(暂时)内存需求比实际需要大33%.

如何在避免不必要的构造函数vectorA同时构建?(我class A满足所有五条规则).

编辑:对不起,我没有意识到默认构造对象的重要性A.我的问题不是默认构造函数,而是参数化构造函数.

c++ vector temporary-objects c++11

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

如何将文件作为列表/字典读取?

我有一个文件,其结构与python list/dictionaries相同,即

[
    {
      "key1" : "value1",
      "key2" : "value2",
       ...
    },
    {
      "key1" : "value3",
      "key2" : "value4",
      ...
    },
    ...
]
Run Code Online (Sandbox Code Playgroud)

有一些简单的方法如何读取此文件并将其转换为字典列表?

python dictionary file list

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

标签 统计

c++ ×3

c++11 ×3

dictionary ×1

file ×1

iterator ×1

list ×1

pow ×1

python ×1

temporary-objects ×1

vector ×1