小编dfg*_*dfg的帖子

结构中的差异?

有什么区别:

typedef struct part 
{
   int a;
} Part;
Run Code Online (Sandbox Code Playgroud)

typedef struct 
{
   int a;
} Part;
Run Code Online (Sandbox Code Playgroud)

我知道第二个是"匿名",但它们有什么不同吗?

c c++ data-structures

13
推荐指数
2
解决办法
452
查看次数

换位表?

我正在使用Minimax使计算机连接6.我也在使用Alpha-Beta修剪来加速算法.

我想添加一个转置表来使算法更快.我绝对没有经验.

有人可以解释换位表的基础知识,以及它们如何应用于Connect 6这样的游戏?指向有用资源的链接没问题.

我熟悉哈希表.

我找到了什么:

1)https://www.chessprogramming.org/Transposition_Table

该链接给出了转置表的一个很好的解释,但完全集中在国际象棋上,因此难以弄清楚换位表如何独立于国际象棋.

algorithm computer-science artificial-intelligence

10
推荐指数
2
解决办法
6812
查看次数

是否存在编写自己的复制构造函数而不是自己的赋值运算符的好主意?

这个问题非常自我解释.如果您需要创建其中一个,那么暗示您还必须创建第二个吗?

c++

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

将C样式字符串初始化为NULL与空字符串之间的区别

这三个是等价的:

char* p= NULL;
char* q = "";
char r[] = {'\0'};
Run Code Online (Sandbox Code Playgroud)

我怀疑第一个与其他人不同,但我不完全确定.

c c++ string

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

为什么不能在堆栈上释放变量?

有问题的语言是C/C++.

我的教授说当你完成使用它时释放堆上的内存,因为否则你最终会得到无法访问的内存.这样做的问题是你可能最终耗尽了所有内存,而且你无法访问它们.

为什么相同的概念不适用于堆栈?我知道你总是可以访问你在堆栈中使用的内存,但如果你不断创建新的变量,你最终会用完空间吗?那么为什么你不能在堆栈上释放变量来为堆上的新变量腾出空间呢?

我得到编译器释放堆栈上的变量,但那是在变量范围的末尾.它是否也在其范围的末尾释放堆上的变量?如果没有,为什么不呢?

c c++ memory heap stack

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

为什么不释放记忆不好的做法?

int a = 0; 
int *b = malloc (sizeof(int));
b = malloc (sizeof(int));
Run Code Online (Sandbox Code Playgroud)

上面的代码很糟糕,因为它在堆上分配内存然后不释放它,这意味着您将无法访问它.但是你也创建了'a'并且从未使用它,所以你也在堆栈上分配了内存,在范围结束之前不会释放内存.

那么为什么不在堆上释放内存,但是没有释放堆栈上的内存(直到作用域结束)是不好的做法?

注意:我知道堆栈上的内存无法释放,我想知道为什么它不被认为是坏的.

c memory

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

你必须有一个默认的构造函数?

说我上课了.我希望它有一个带有某些参数的构造函数,所以我创建一个.即使我不需要它,我仍然需要一个没有参数的构造函数(默认构造函数)吗?换句话说,即使我不需要,我是否必须包含Class()成员功能?

c++ oop class

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

如果两个名称空间具有相同的变量名,会发生什么?

假设您有两个名称空间,并且两个名称空间都具有相同名称的功能.如果你说"使用"两个命名空间,当你调用函数时,它使用哪个命名空间的变量?

例如:

#include <library1>
#include <library2>

using namespace1;
using namespace2;

int main()
{
     myfunction(); //exists in both namespaces under the same name
}
Run Code Online (Sandbox Code Playgroud)

调用哪个命名空间的函数?

c++

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