相关疑难解决方法(0)

开发人员是否应该首先考虑可读性或性能?

通常情况下,开发人员将面临解决问题的两种可能方式之间的选择 - 一种是惯用的和可读的,另一种不太直观,但可能表现更好.例如,在基于C语言中,有两种方法可以将数字乘以2:

int SimpleMultiplyBy2(int x)
{
    return x * 2; 
}
Run Code Online (Sandbox Code Playgroud)

int FastMultiplyBy2(int x)
{
    return x << 1;
}
Run Code Online (Sandbox Code Playgroud)

第一个版本更容易为技术和非技术读者选择,但第二个版本可能表现更好,因为比特移位比乘法更简单.(现在,让我们假设编译器的优化器不会检测到它并对其进行优化,尽管这也是一个考虑因素).

作为开发人员,最初的尝试会更好吗?

performance readability

74
推荐指数
9
解决办法
9124
查看次数

在C++中枚举k维超立方体顶点的最有效方法是什么?

基本问题: 我有一个维度盒子.我有一个上界和下界的向量.枚举顶点坐标的最有效方法是什么?

背景: 举个例子,假设我有一个三维盒子.获得的最有效算法/代码是什么:

vertex[0] = ( 0, 0, 0 ) -> ( L_0, L_1, L_2 )
vertex[1] = ( 0, 0, 1 ) -> ( L_0, L_1, U_2 )
vertex[2] = ( 0, 1, 0 ) -> ( L_0, U_1, L_2 )
vertex[3] = ( 0, 1, 1 ) -> ( L_0, U_1, U_2 )

vertex[4] = ( 1, 0, 0 ) -> ( U_0, L_1, L_2 )
vertex[5] = ( 1, 0, 1 ) -> ( U_0, L_1, …
Run Code Online (Sandbox Code Playgroud)

c++ binary enumeration bit-shift

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

标签 统计

binary ×1

bit-shift ×1

c++ ×1

enumeration ×1

performance ×1

readability ×1