我是一名c ++程序员。我正在尝试使用Eratosthenes筛选。我的程序正在快速计算高达一百万的素数,并且与Sieve实际上是一致的。但是,我如何知道是否有更好的编码方式,或者我的编码方式是不是很糟糕。
很多人都说尝试google并将其与其他解决方案进行比较。我并不支持这一点,因为众所周知,每个程序员都有不同的方法解决问题。
链接到我的代码:http://pastebin.com/qkrBpd29
答案 0 :(得分:2)
编辑:我刚刚意识到您的代码并未真正使用C ++的任何功能,只有std::cin
和std::cout
。它基本上是C代码。我在下面的回答是假设您正在使用C ++。
从查看代码我会建议考虑内存管理。您已经编写了没有破坏资源的对象。当这些函数应该是类函数时,您正在编写接受节点对象的全局函数。
了解std::unique_ptr
中的智能指针std::shared_ptr
和#include <memory>
以及适当使用它们的位置。
如果可能,只要你需要在堆上的东西,在堆栈上声明一些事情,以确保它之后被清理,这被称为RAII。 (旁注,RAII,这个名字已经卡住了,不用担心它代表什么,因为它不是很具描述性。)
阅读Effective C++ by Scott Meyers和Effective Modern c++ Scott Meyers.
在youtube上也有一些来自cppcon的精彩讲座。
答案 1 :(得分:1)
如果我理解正确,那么您的实施基于列表。这不是很好,因为您必须先删除正确的位置才能删除。我认为使用数组更简单(抱歉,java代码):
from pywinauto.application import Application
app = Application().Start(cmd_line=u'"C:\\Program Files\\SFS\\Program\\sfswin.exe"')
afxab = app[u'sfswin - Unknown1']
afxab.Wait('ready')
afxbfdb = afxab.Unknown1
afxbfdb.Maximize()
toolbarwindow = afxab[u'5']
toolbar_button = toolbarwindow.Button(1)
toolbar_button.Click()
app.OpenDialog.Edit.set_text(ur'C:\Program Files\SFS\six.wav')
app.OpenDialog.Open.click_input()
app.OpenDialog.wait_not('visible')
afxab = app.window_(title_re="Open Audio File")
afxabButton1 = ButtonWrapper(afxab.Button.WrapperObject("OK")).Click
答案 2 :(得分:0)
没有代码是完美的,有许多正确的方法可以做,但问自己或他人以下问题可以帮助你。
答案 3 :(得分:0)
struct Node{
int a;
Node* linkl;
Node* linkr;
}*top,*rear;
顶部和后部都是全局的。不好。全球需要非常罕见而你
在这里不需要它们。