我知道这听起来像是一个普遍的问题而且我已经看过很多类似的问题(无论是在这里还是在网上),但它们都不是真的像我的困境.
说我有这个代码:
void GetSomeData(char* buffer)
{
// put some data in buffer
}
int main()
{
char buffer[1024];
while(1)
{
GetSomeData(buffer);
// do something with the data
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我在全局声明缓冲区[1024],我会获得任何性能吗?
我通过time命令在unix上运行了一些测试,执行时间之间几乎没有差异.
但我真的不相信......
理论上,这种变化应该有所作为吗?
显然,微软已经(有点)用快速访问项取代了"收藏夹"Windows资源管理器项.但我找不到以编程方式向其添加文件夹的方法(在Google上都不是MSDN).有没有办法做到这一点?
根据Wikipedia,访问数组中的任何单个元素需要恒定的时间,因为只需要执行一个操作来定位它.
对我来说,幕后发生的事情可能看起来像这样:
a)线性搜索(例如,我想访问元素5.我在索引0开始搜索,如果它不等于5,我去索引1等)这是O(n) - 其中n是数组的长度
b)如果数组存储为B树,这将给出O(log n)
我认为没有其他方法.
有人可以在O(1)中解释为什么以及如何做到这一点?
int a = 1;
int b = (1,2,3);
cout << a+b << endl; // this prints 4
Run Code Online (Sandbox Code Playgroud)
(1,2,3)c ++中的某种结构(某种原始类型的列表,也许?)b分配值3?编译器是否只是从列表中取出最后一个值?我有一个版本化的.cpp文件,我想看看谁编写了一行代码,所以我使用了Tortoise SVN blame选项.但是当它打开文件时,它显示的是:

有没有人遇到过这个问题?
PS
我正在使用Tortoise SVN 1.8.1
A有一个由玩家控制的迷宫和角色以及一个必须找到他的无人机(单独).有没有人知道(高效)AI算法做这样的事情?PS我知道有几种路径寻找算法(例如A*),但据我所知,这些只能找到"不动"的两个节点之间的路径(如果我的角色静止不动,这会有效,但是这显然不是这种情况).
Prolog 中的线程不共享其堆栈中的数据(在文档中是这样说的)。但是,据我所知,这可以通过将线程与 thread_join 连接来解决。如果到目前为止我所说的有任何错误,请纠正我。但是,如果一切都是真的,你能告诉我为什么下面的代码没有输出我期望的结果吗?
maximum(X,Y,Y) :- X =< Y,!.
maximum(X,_,X).
start :- thread_create(maximum(5,6,X),Id1,[]),
thread_create(maximum(8,7,Y),Id2,[]),
thread_create(maximum(9,9,Z),Id3,[]),
thread_join(Id1,_),
thread_join(Id2,_),
thread_join(Id3,_),
writeln(X),
writeln(Y),
writeln(Z).
Run Code Online (Sandbox Code Playgroud)
PS 我期望它输出的是 6,8 和 9(在单独的行上)。
我在C++中有以下功能:
char** f()
{
char (*v)[10] = new char[5][10];
return v;
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio 2008表示如下:
error C2440: 'return' : cannot convert from 'char (*)[10]' to 'char **'
Run Code Online (Sandbox Code Playgroud)
为了使这个功能起作用,返回类型究竟应该是什么?
我知道问题的标题看起来有点令人头疼,但我真的不知道怎么用一句话来问这个问题.我只会告诉你我的意思:
void f(T *obj)
{
// bla bla
}
void main()
{
f(new T());
}
Run Code Online (Sandbox Code Playgroud)
据我所知,(几乎)每个新的都需要一个删除,这需要一个指针(由new返回).在这种情况下,new返回的指针不存储在任何地方.这会是内存泄漏吗?
C++是否有某种神奇的功能(程序员看不见),它会在函数结束后删除对象,或者这种做法总是一个坏主意?
c ×3
c++ ×3
algorithm ×2
function ×2
arrays ×1
blame ×1
char ×1
heap ×1
maze ×1
oop ×1
path-finding ×1
performance ×1
pointers ×1
prolog ×1
return-type ×1
stack ×1
svn ×1
tortoisesvn ×1
winapi ×1
windows-10 ×1