我怎么知道我的代码方法是好还是坏?

时间:2016-12-17 10:10:03

标签: c++ algorithm

我是一名c ++程序员。我正在尝试使用Eratosthenes筛选。我的程序正在快速计算高达一百万的素数,并且与Sieve实际上是一致的。但是,我如何知道是否有更好的编码方式,或者我的编码方式是不是很糟糕。

很多人都说尝试google并将其与其他解决方案进行比较。我并不支持这一点,因为众所周知,每个程序员都有不同的方法解决问题。

链接到我的代码:http://pastebin.com/qkrBpd29

4 个答案:

答案 0 :(得分:2)

编辑:我刚刚意识到您的代码并未真正使用C ++的任何功能,只有std::cinstd::cout。它基本上是C代码。我在下面的回答是假设您正在使用C ++。

从查看代码我会建议考虑内存管理。您已经编写了没有破坏资源的对象。当这些函数应该是类函数时,您正在编写接受节点对象的全局函数。

了解std::unique_ptr中的智能指针std::shared_ptr#include <memory>以及适当使用它们的位置。

如果可能,只要你需要在堆上的东西,在堆栈上声明一些事情,以确保它之后被清理,这被称为RAII。 (旁注,RAII,这个名字已经卡住了,不用担心它代表什么,因为它不是很具描述性。)

阅读Effective C++ by Scott MeyersEffective 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)

没有代码是完美的,有许多正确的方法可以做,但问自己或他人以下问题可以帮助你。

  1. 我的代码是否正确?它是否一直能产生正确的答案?
  2. 我的代码有效吗?
  3. 我的代码是否可维护?其他人可以轻松地构建它而无需重写整个事情吗?

答案 3 :(得分:0)

  struct Node{
   int a;
   Node* linkl;
   Node* linkr;
   }*top,*rear;
顶部和后部都是全局的。不好。全球需要非常罕见而你 在这里不需要它们。