小编Oys*_*erD的帖子

你最喜欢的分析工具是什么(适用于C++)

到目前为止,我只使用过Rational Quantify.我听说过有关英特尔VTune的好消息,但从未尝试过!

编辑:我主要是在寻找可以检测代码的软件,因为我猜这是获得非常好结果的唯一方法.


也可以看看:

Windows上的本机C++有哪些优秀的分析器?

c++ performance profiling

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

优化康威的"生命游戏"

为了实验,我(很久以前)实施了康威的生命游戏(我知道这个相关的问题!).

我的实现通过保留2个布尔数组来表示"最后状态"和"正在更新状态"(每次迭代时交换2个数组).虽然速度相当快,但我常常想知道如何优化它.

例如,一个想法是在迭代N处预先计算可以在迭代(N + 1)处修改的区域(因此,如果一个单元不属于这样的区域,则甚至不会考虑在迭代(N + 1)).我知道这很模糊,我从来没有花时间详细介绍......

你对如何优化(速度)Game of Life迭代有任何想法(或经验!)吗?

language-agnostic algorithm performance conways-game-of-life

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

什么是动态铸造的"好用"例子?

我们经常听到/读到应该避免动态铸造.根据你的说法,我想知道它的"好用"例子是什么?

编辑:

是的,我知道那个其他线程:确实在阅读那里的第一个答案时,我问了我的问题!

c++ dynamic-cast casting rtti

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

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

有没有我们需要*C++中的受保护继承的例子?

虽然我已经看到需要私有继承的罕见情况,但我从未遇到过需要保护继承的情况.有人有例子吗?

c++ oop inheritance

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

Vi编辑Visual Studio

我已经习惯了Vi(m)编辑器并且正在使用MS Visual Studio 2005.我找不到一个免费的Vi加载项(2003版本只有一个加载项).我搜索了一下,看到今年有一个"谷歌夏季代码"项目来编写这样的插件,我急切地等待结果.我也听说过ViEmu(不是免费的,我不能在工作中测试它).

在我的情况下是否有人找到了解决方案(和/或测试过的ViEmu)?

编辑:我无法在工作中测试ViEmu,因为他们对我们在我们的盒子上安装的内容感到偏执:它必须通过所需的频道,并且30天我不认为它是值得的(我没有Windows框在家).

编辑:由于两个答案都是等价的,我最终接受了第一个答案.

ide vim editor visual-studio

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

奖励*完整*初学者的代码项目

正在介绍编程的人的课程经常包括一个代码项目,我认为这是一种很好的学习方式.然而,这些项目往往过于人为,因此不值得回报.

您对奖励代码项目的想法是什么?(最好是易于开始,并且可以随意扩展以获得更高级!).

编辑:

@Mark:感谢这个链接,虽然我对那些对编程完全不熟悉的人更感兴趣(链接似乎更多地指那些已经精通至少一种语言的人,并试图学习一种新的 - 我会说的典型SO观众:) - ).

@Kevin,Vaibhav,gary:我在考虑通过一种语言学习编程的人,所以在课程开始时,有些人对控制结构一无所知(甚至更不用说任何语法).但是,我正在考虑一个相当大的项目(通常在1k-10k行代码范围内,可能是2或3名学生的组).这就是我的学校为完整的初学者所做的事情,它确实似乎对他们有用......除了他们中的大多数人发现他们的项目非常无聊!

language-agnostic

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

在一个盒子里找到你自己的号码

100(或一些偶数2N :-))囚犯在A房间.他们从1到100编号.

一个接一个地(从囚犯#1到囚犯#100,按顺序),他们将进入B室,其中100个箱子(编号从1到100)等待他们.在(关闭)框内是从1到100的数字(框内的数字是随机置换的!).

一旦进入B室,每个囚犯都会打开50个盒子(他选择打开哪个盒子).如果他找到这50个箱子中的一个分配给他的号码,囚犯就会走进C室,所有箱子再次关闭,然后下一个人从A房走进B室.否则,所有囚犯(在房间A,B和C)被杀死.

在进入B室之前,囚犯可以就策略(算法)达成一致.没有办法在房间之间进行通信(B房间也没有留言!).

是否有算法可以最大化所有囚犯生存的概率?该算法实现了什么概率?

笔记:

  • 随机做事(你称之为'无策略')确实给每个囚犯提供了1/2的概率,但随后所有囚犯幸存的概率是1/2 ^ 100(这是非常低的).一个人可以做得更好!

  • 囚犯不允许重新订购盒子!

  • 所有囚犯在囚犯第一次找不到他的号码时被杀.没有通信是可能的.

  • 提示:平均可以拯救超过30名囚犯,这远远超过(50/100)*(50/99)*[...]*1

puzzle algorithm

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