小编Fak*_*ken的帖子

我可以使用break来退出多个嵌套for循环吗?

是否可以使用该break函数退出几个嵌套for循环?如果是这样,你会怎么做呢?你还可以控制休息退出的循环次数吗?

c++ for-loop break nested-loops

282
推荐指数
12
解决办法
21万
查看次数

系统( "暂停"); - 为什么这是错的?

这是一个我不太明白的问题:

该命令system("pause");被教给新程序员,作为暂停程序并等待键盘输入继续的方法.然而,许多资深程序员似乎不赞成这种不应该在不同程度上做的事情.

有人说使用起来很好.有人说这只是在你被锁在你的房间而没有人在看的时候使用.有人说,如果你使用它们,他们会亲自到你家里杀了你.

我,我自己是一名没有正式编程培训的新程序员.我使用它是因为我被教导使用它.我不明白的是,如果它不是可以使用的东西,那么我为什么要教它使用它?或者,另一方面,它毕竟不是那么糟糕吗?

你对这个问题有什么看法?

c++

123
推荐指数
7
解决办法
28万
查看次数

如何将浮点数初始化为最大/最小值?

如何硬编码浮点数或双精度的绝对最大值或最小值?我想通过简单地迭代并捕获最大的数据来搜索数组的最大/最小值.

对于花车还有正负无穷大,我应该使用它们吗?如果是这样,我如何在我的代码中表示?

c++ primitive-types

94
推荐指数
5
解决办法
14万
查看次数

找到最大元素的位置

是否有一个标准函数返回值数组的max元素的位置(而不是值)?

例如:

假设我有一个这样的数组:

sampleArray = [1, 5, 2, 9, 4, 6, 3]
Run Code Online (Sandbox Code Playgroud)

我想要一个返回3的整数的函数,它告诉我这sampleArray[3]是数组中最大的值.

c++ algorithm

68
推荐指数
3
解决办法
8万
查看次数

循环条件评估

只是一个简单的问题.

我有一个看起来像这样的循环:

for (int i = 0; i < dim * dim; i++)
Run Code Online (Sandbox Code Playgroud)

是否在每个循环中重新评估for循环中的条件?

如果是这样,做这样的事情会更有效吗?:

int dimSquare = dim * dim;
for (int i = 0; i < dimSquare; i++)
Run Code Online (Sandbox Code Playgroud)

谢谢

-Faken

c++ optimization for-loop

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

如何在Visual Studio 2008中折叠选定的代码块?

在Visual Studio 2008中:有没有办法让我自定义地折叠一些代码,就像我可以自动折叠批量的注释一样?

c++ visual-studio

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

圆和三角形的问题

我有一个有趣的问题,我一直试图解决最后一段时间:

我在2D xy平面上有3个圆圈,每个圆圈具有相同的已知半径.我知道三个中心的坐标(它们是任意的,可以在任何地方).

可以绘制的最大三角形是什么,使得三角形的每个顶点位于一个单独的圆上,这些顶点的坐标是什么?

我一直在看这个问题好几个小时并问了一堆人,但到目前为止只有一个人能够提出一个合理的解决方案(虽然我无法证明这一点).

我们提出的解决方案包括首先创建一个关于三个圆心的三角形.接下来,我们分别查看每个圆,并计算穿过圆的中心并垂直于相对边的线的方程.然后我们计算圆的两个交点.然后对接下来的两个圆进行,结果为6个点.我们迭代这6个点创建的8个可能的3个点三角形(限制是大三角形的每个点必须在一个单独的圆上)并找到最大尺寸.

结果看起来很合理(至少在纸上绘制时),它通过了圆的中心全部落在一条直线上的特殊情况(给出一个已知的最大三角形).不幸的是,我无法证明这是否正确.

我想知道是否有人遇到类似这样的问题,如果有的话,你是怎么解决的?

注意:我知道这主要是一个数学问题,而不是编程,但是它将在代码中实现,并且必须进行优化才能非常快速有效地运行.事实上,我已经在代码中进行了上述解决方案并进行了测试工作,如果您想看看,请让我知道,我选择不发布它因为它全部采用矢量形式而且几乎无法弄清楚到底是怎么回事(因为它被浓缩得更有效率).

最后,是的,这是为了学校的工作,虽然它不是一个家庭作业问题/任务/项目.这是我毕业论文的一部分(非常非常小的部分,但在技术上仍然是其中的一部分).

谢谢你的帮助.

编辑:这是我刚才想出的一种新算法.

从圆圈的中心开始,画一条线到另外两个中心.计算将所创建的角度平分的线,并计算圆与穿过圆心的线之间的交点.你将得到2个结果.对其他两个圆圈重复此操作以获得总共6个点.迭代这6个点,得到8个可能的解决方案.找到8种解决方案中的最大值.

如果您在三个点的一个"方向"上绘制线条,此算法将处理共线情况.

从我尝试使用CAD软件为我计算几何形状的少数随机试验来看,这种方法似乎优于之前所述的所有其他方法.但是,已经证明它不是Victor的反例之一的最佳解决方案.

我明天会对此进行编码,出于某种原因,我已经失去了对大学计算机的远程访问权限,而且大部分内容都在其上.

theory math geometry

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

确定两条光线是否相交

我在2D平面上有两条光线延伸到无限远,但两者都有一个起点.它们都由起点和矢量在射线方向上描述,该射线延伸到无穷远.我想知道两条光线是否相交,但我不需要知道它们相交的位置(它是碰撞检测算法的一部分).

到目前为止,我所看到的一切都描述了找到两条线或线段的交点.是否有快速算法来解决这个问题?

algorithm math geometry intersection

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

有没有很好的库来解决C++中的三次样条函数?

我正在寻找一个好的C++库来为我提供解决大型三次样条函数(大约1000个点)的函数,任何人都知道吗?

c++ spline

16
推荐指数
3
解决办法
4万
查看次数

多线程是否会提升性能?

我是一般的编程新手所以请在回答我的问题时牢记这一点.

我有一个程序,它采用一个大型3D阵列(10亿个元素)并沿各个轴汇总元素,以生成数据每一侧投影的2D数组.这里的问题是它非常密集,因为程序不断地从ram获取信息,包括读写.

问题是,如果我多线程化程序或者我最终会遇到RAM访问瓶颈,我会获得任何性能提升吗?当我说多线程时,我只是指2或4个核心的多线程,而不是更多.

如果它有帮助,我目前的计算机配置是2.4ghz core2 quad,1033 fsb,4gb ram,667mhz.

提前致谢,

-Faken

编辑:

在我看来,这里的人们对我最初预期的这个问题更感兴趣.我将扩展问题并为感兴趣的人发布一些代码.

首先,有一点关于我的背景,以便你了解我的来源.我是一名机械工程研究生,有些人设法选择一个与机械工程无关的话题.大约5年前,我在介绍性的java(强制)课程中学习了1门课程,直到大约一个月前,我才认真地开始学习论文.我还采取了(再次强迫,仍然不知道为什么)电子和计算机工程课程,我们处理微控制器(8位),它们的内部工作,以及一些ASM编码.除此之外,我对编程几乎一无所知.

这是代码:

int dim = 1000;
int steps = 7 //ranges from 1 to  255

for (int stage = 1; stage < steps; stage++)
for (int j = 0; j < dim; j++)
    for (int i = 0; i < dim; i++)
    {
        sum = 0;
        for (int k = 0; k < dim; k++)
            if (partMap[(((i * dim) + k) * dim) + j] >= stage)
                sum++; …
Run Code Online (Sandbox Code Playgroud)

c++ cpu performance ram multithreading

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