程序设计

专业和发烧友程序员的问答

24
最快的固定长度6 int数组
在回答另一个堆栈溢出问题(这个问题)时,我偶然发现了一个有趣的子问题。对6个整数数组进行排序的最快方法是什么? 由于问题非常低: 我们不能假设库可用(并且调用本身有成本),只能使用普通C语言 为了避免排空指令流水线(具有非常高的成本),我们也许应该尽量减少分支机构,跳跃,和所有其他类型的控制流断裂(像那些隐藏在背后的序列点&&或||)。 房间受到限制,尽量减少寄存器和内存使用是一个问题,理想情况下,最好在适当的位置进行排序。 确实,这个问题是一种高尔夫,其目标不是最小化源代码长度,而是执行时间。我将其称为“ Zening”代码,如Michael Abrash所著的《Zen of Code Optimization》及其续集的书名中所用。 至于为什么有趣,它分为几层: 该示例简单易懂,易于度量,不涉及太多C技能 它显示了针对该问题选择良好算法的效果,还显示了编译器和基础硬件的效果。 这是我的参考(天真,未优化)实现和测试集。 #include <stdio.h> static __inline__ int sort6(int * d){ char j, i, imin; int tmp; for (j = 0 ; j < 5 ; j++){ imin = j; for (i = j + 1; i < …

12
如何在Android上的ListViews之间删除线?
我正在使用两个ListView这样的: <ListView android:id="@+id/ListView" android:text="@string/Website" android:layout_height="30px" android:layout_width="150px" android:scrollbars="none" android:transcriptMode="normal"/> <ListView android:id="@+id/ListView1" android:text="@string/Website" android:layout_height="30px" android:layout_width="150px" android:scrollbars="none" android:transcriptMode="normal"/> 两个ListViews 之间有一个空白行。如何删除它?

13
带参数的装饰器?
我在装饰器传递变量'insurance_mode'时遇到问题。我可以通过以下装饰器语句来做到这一点: @execute_complete_reservation(True) def test_booking_gta_object(self): self.test_select_gta_object() 但不幸的是,该声明不起作用。也许也许有更好的方法来解决此问题。 def execute_complete_reservation(test_case,insurance_mode): def inner_function(self,*args,**kwargs): self.test_create_qsf_query() test_case(self,*args,**kwargs) self.test_select_room_option() if insurance_mode: self.test_accept_insurance_crosseling() else: self.test_decline_insurance_crosseling() self.test_configure_pax_details() self.test_configure_payer_details return inner_function
401 python  decorator 

5
Xcode项目与Xcode工作区-差异
我试图了解整个生态系统是如何iOS工作的。 到目前为止,我可以为我的大部分问题找到答案(并且相信我,有很多问题),但是对于这个问题,似乎还没有明确的答案。 XcodeProject和XcodeWorkspace文件有什么区别? 两者之间有什么区别? 他们负责什么? 当我以团队/单独方式开发我的应用程序时,应该与哪一个合作? 关于这两个文件,我还有什么要注意的吗?
401 xcode 


19
GitHub:无效的用户名或密码
我有一个托管在GitHub上的项目。尝试在主服务器上进行修改时失败。我总是收到以下错误消息 Password for 'https://git@github.com': remote: Invalid username or password. fatal: Authentication failed for 'https://git@github.com/eurydyce/MDANSE.git/' 但是,将我的ssh密钥设置为github似乎还可以。确实,当我做一个ssh -T git@github.com我会 Hi eurydyce! You've successfully authenticated, but GitHub does not provide shell access. 这似乎表明从这一方面来看一切都很好(eurydyce是我的github用户名)。我严格按照github上给出的说明和许多堆栈讨论的建议进行操作,但是没有办法。您是否知道我做错了什么?
401 git  github 

2
vim和NERD树扩展名-添加文件
当使用带有NERDTree插件的vim编辑器浏览项目树时,是否有一种简便的方法可以在当前突出显示的目录下创建新的源代码文件? 当前,我进入外壳,添加文件,然后刷新树。肯定有更好的办法。
400 vim  nerdtree 


9
如何阅读最后的提交评论?
通常$ git -commit -m "",我希望在提交()期间阅读我的最新评论,以记住自己取得的进步。是否有一种简单的方法可以通过命令行直接访问最后的提交消息?(我正在使用Windows。)
400 git 


2
为什么`[`优于`subset`?
当我需要过滤data.frame,即提取满足某些条件的行时,我更喜欢使用以下subset功能: subset(airquality, Month == 8 & Temp > 90) 而不是[功能: airquality[airquality$Month == 8 & airquality$Temp > 90, ] 我偏爱的主要原因有两个: 我发现代码从左到右读起来更好。即使对R一无所知的人也可以说出subset上面的陈述在做什么。 因为列可以在select表达式中称为变量,所以我可以节省一些击键。在上面的示例中,我只需输入airquality一次subset,但只需输入3次[。 因此,我过着幸福的生活,subset在任何地方都可以使用它,因为它更短且读起来更好,甚至向我的R编码员倡导它的美。但是昨天我的世界崩溃了。在阅读subset文档时,我注意到以下部分: 警告 这是旨在交互使用的便利功能。对于编程,最好使用标准的子集函数,例如[,尤其是参数子集的非标准评估会产生意想不到的后果。 有人可以帮助澄清作者的意思吗? 首先,“ 交互使用 ” 是什么意思?我知道交互式会话是什么,而不是在BATCH模式下运行的脚本,但是我看不出它应该有什么区别。 然后,请您解释一下“ 论点子集的非标准评估 ”,为什么这样做很危险,也许可以举个例子?
400 r  filter  subset  r-faq 

1
权威的C书指南和清单
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 这个问题试图在社区中收集由社区维护的优质图书清单。C 针对各种技能水平的编程语言。 C是一种复杂的编程语言,很难通过阅读在线教程来随时掌握。全面的书籍通常是学习语言的最佳方法,而寻找一本好书则是第一步。避免写得不好的书是很重要的,更重要的是要避免包含严重技术错误的书。 请提出对已接受答案的修改建议,以添加高质量的书,并附上大致的技能水平,并简要介绍每本书。(请注意,该问题已锁定,因此不会接受新的答案。列表中仅保留一个答案) 随意讨论书籍的选择,质量,标题,摘要,技能水平以及您发现不对的任何其他内容。在这里,C社区认为令人满意的书籍将继续出现在清单上;其余的将定期删除。 对于具有C和C ++用户协会(ACCU)的评论的书籍,应在这些书籍的旁边添加指向这些评论的链接。 也可以看看: 其他与C相关的资源 C 标签维基 类似的清单 C ++:权威的C ++书籍指南和清单 该问题已在Meta上进行了讨论,作为2018年已删除问题审核的一部分。共识是不删除它并积极维护它。
400 c 


17
什么是不变的?
这可能是有史以来最愚蠢的问题,但我认为对于Java新手来说这很令人困惑。 有人可以澄清什么是不变的吗? 为什么是String一成不变的? 不可变对象的优缺点是什么? 为什么诸如StringBuilderString之类的可变对象优先于String,反之亦然? 一个很好的例子(在Java中)将不胜感激。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.