小编pat*_*ork的帖子

CMAKE_SOURCE_DIR在哪里?

此变量是否始终设置为包含CMakeLists.txt我运行的文件的目录cmake

例如,如果我希望运行cmakeCMakeLists.txt当前目录上方的目录中的文件,我会去:cmake ...

在这种情况下,我的CMAKE_SOURCE_DIR设置为什么?

cmake

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

检查False的正确方法是什么?

哪个更好?(为什么?)

if somevalue == False:
Run Code Online (Sandbox Code Playgroud)

要么

if somevalue is False:
Run Code Online (Sandbox Code Playgroud)

如果somevalue是字符串,你的答案会改变吗?

python boolean boolean-expression

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

如何解释这个算法计算一个数的幂?

我目前正在阅读Skiena的"算法设计手册".

他描述了一种计算数字幂的算法,即计算a^n.

他首先说最简单的算法很简单a*a*a ... *a,所以我们总共进行了n-1计算.

然后他继续说有一个优化,并要求我们认识到:

n = n/2 + n/2
Run Code Online (Sandbox Code Playgroud)

我们也可以这么说

a^n = ((a^n/2)^2)  (a to the n equals a to the n over 2, squared)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我理解.从这些方程式中,他推导出一种仅执行O(lg n)乘法的算法.

function power(a, n)
  if (n = 0) 
    return(1)

  x = power(a,n/2)

  if (n is even)       
    return(x^2)
  else             
    return(a*x^2)
Run Code Online (Sandbox Code Playgroud)

似乎x必须是到目前为止计算的当前值.但是在读完这几次之后,我仍然不明白他是如何从这些方程中设计出这种算法,甚至是如何工作的.谁能解释一下?

algorithm

6
推荐指数
2
解决办法
2万
查看次数

如何从FT_Error代码获取相应的错误字符串?

给定FT_Error,是否有宏/函数返回相应的错误消息字符串?

freetype2

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

将new'd对象放入构造函数初始化器中是多么明智?

在构造函数初始化器中传递新对象是明智的还是愚蠢的?

例如:

class Mallard
{
public:
  Mallard()
   : s(new SomeLargeObject(5)) {}
private:
  SomeLargeObject * s;
};
Run Code Online (Sandbox Code Playgroud)

c++ constructor

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

大哦 - 为什么这种不平等是真的?

我正在阅读Skiena的"算法设计手册".

第一章阐述了Big O符号的正式定义:

f(n) = O(g(n))意味着c * g(n)是上限f(n).即,存在一些常数c,对于足够大的n ,f(n)总是小于或等于c * g(n).(即n >= n0某些常数n0)

这很好,也很有意义.

但后来作者继续描述特定功能的大O: 3n^2 - 100n + 6

他说这O(3n^2 - 100n - 6)不等于O(n).而他的理由是,对于c我选择的任何一个,c * n总是< 3n^2何时n>c.这是真的,但那(-100n + 6)部分呢?

让我们说我选择c = 1n = 2. 3n^2 - 100n + 6 = 12 - 200 + 6 = -182 …

algorithm big-o

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

检查空字符串时,"== False"和"is not"之间是否有区别?

我已经在stackoverflow的其他地方读过,在Python中检查空字符串的最优雅方法是(例如,假设它是一个被调用的字符串response):

if not response:
    # do some stuff 
Run Code Online (Sandbox Code Playgroud)

原因是字符串可以计算为布尔对象.

所以我的问题是,下面的代码是否说同样的事情?

if response == False:
    # do some stuff
Run Code Online (Sandbox Code Playgroud)

python boolean-expression

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

如何防止从char到int的隐式转换?

我有以下代码:

#include <iostream>

template<typename T> class DynArray 
{ 
  T *contents; 
  int size; 
public: 
  explicit DynArray(int initial_size); 
}; 

int main() 
{ 

  DynArray<std::string> b('7'); 

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

我的问题是:如何防止从编译到char的隐式转换?(即这一行:`DynArray b('7');

c++

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

为什么要插入排序数组O(n)?

Skiena在"算法设计手册"中指出插入排序数组是O(n).然而,在排序数组中搜索项目是O(log n),因为您可以进行二进制搜索.

无法插入也是O(log n),如果我进行二进制搜索比较以找出数组应该去哪里?

algorithm

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