Peter Norvig 通过结合确定性逻辑运算和可能解决方案的智能遍历,撰写了一篇描述解决数独难题的程序的文章,即使是最困难的难题.后者是递归完成的; 这是该功能(来源):
def search(values):
"Using depth-first search and propagation, try all possible values."
if values is False:
return False ## Failed earlier
if all( len( values[s]) == 1 for s in squares):
return values ## Solved!
## Chose the unfilled square s with the fewest possibilities
_,s = min( (len( values[s]), s)
for s in squares
if len(values[s]) > 1
)
return some( search( assign( values.copy(), s, d))
for d …Run Code Online (Sandbox Code Playgroud) 我正在使用GNU make来编译我的C++代码,我想了解如何使我的编译可以自定义.
我在不同的地方阅读CFLAGS,CCFLAGS并CXXFLAGS用于此目的.那我该怎么用呢?如果我有额外的命令行参数编译器,我应该将它们附加CFLAGS或前置它们吗?有共同的做法吗?
为什么三个不同的变量?我想C编译器应该得到CFLAGS和CCFLAGS,而C++编译器应该得到CFLAGS和CXXFLAGS-我有没有得到它吗?
人类用户是否应该设置这些变量?做任何自动化工具(automake,autoconf,等)设置它们?我应该使用的linux系统没有定义任何这些变量 - 这是典型的吗?
目前我的Makefile看起来像这样,我觉得它有点脏:
ifdef code_coverage
GCOV_FLAG := -fprofile-arcs -ftest-coverage
else
GCOV_FLAG :=
endif
WFLAGS := -Wall
INC_FLAGS := -Istuff -Imore_stuff -Ietc
CCFLAGSINT := -O3 $(WFLAGS) $(INC_FLAGS) $(CCFLAGS)
... (somewhere in the makefile, the command-line for compilation looks like this)
$(CC) $(CCFLAGSINT) -c $< -o $@
... (somewhere in the makefile, the command-line for linking looks …Run Code Online (Sandbox Code Playgroud) 当我命名数组类型的变量时,我常常遇到一个两难的问题:我是将数组命名为多数还是单数?
例如,假设我有一个名字数组:在PHP中我会说:$names=array("Alice","Bobby","Charles");
但是,然后我想说我想在这个数组中引用一个名字.对于鲍比,我会说:$names[1].但是,这种接缝反直觉.我宁愿打电话给Bobby $name[1],因为Bobby只有一个名字.
所以,你可以看到一个轻微的差异.是否有命名数组的约定?
关于缩写词的C#命名,如果我正在编写一个与Windows API相关的库,那么对WindowsApi或WindowsAPI有任何强烈的约定,还是只是个人偏好?
我是一名相当新秀的C++程序员,但由于我对该语言的经验有限,大多数标准C++风格指南(例如Google C++样式指南)都与stl和boost库中实现的内容相悖.
例如,在C++标准库和升压类名称总是小写,用下划线分隔的话(例如std::vector,boost::unordered_map,std::map::const_iterator),而多数风格指南我已经看到了C++向驼峰样式(如倾向于TcpConnection或Int32).
这同样适用于方法.标准库和Boost使用与类(例如std::map<>::get_equal("foo"))相同的方法和函数样式,而大多数样式指南使用pascalCase或CamelCase.
如果我们将这与像Ruby这样的语言形成对比,大多数用户都会遵循核心库中使用的约定,那么标准C++库和其他人的代码之间会有这样的差异,这似乎很奇怪.
有人知道为什么吗?
编辑:只是为了澄清,我只是简单地谈论肤浅的文本风格(套管,使用下划线等)而不是实际的实现风格.
在C++中命名函数的惯例是什么?
我来自Java环境所以我通常命名为:
myFunction(...) {
}
Run Code Online (Sandbox Code Playgroud)
我在C++中看过混合代码,
myFunction(....)
MyFunction(....)
Myfunction(....)
Run Code Online (Sandbox Code Playgroud)
什么是正确的方法?
另外,对于类方法还是非类方法,它是一样的吗?
有没有人知道一个很好的资源来解释HTML ID和类的良好命名约定,以及是否使用元素类型的ID(例如btn或按钮或类似物)作为前缀?
课程应该是复数还是单数?我知道ID应该是单数的,因为它们是唯一的,但是那些类呢?
ID和类应该使用名词,对吧?
我正在使用在现有页面中注入其他页面的页面,有点像部分页面......因此......我想知道是否有人在ID和/或类前面添加了一个名称..有点像命名空间或类似?
任何评论或见解真的很感激.
允许哪些字符以及C#类名称中不允许的内容?能否请你帮忙?
编辑:指定.允许哪些特殊字符?请具体说明,因为高技术语言的50页规格链接不是一个对我有帮助的答案.
解释:我试图完成的是将类名划分为可区分的部分,例如:
class Person @ WorkOffice @ Helper @ Class
{
}
我想到了一种使用某种角色或其他东西来从这个类名中获取Part,WorkOffice,Helper和Class的方法.
是的,我知道这很疯狂,但我需要这样.我知道我可以使用属性和反射将这些数据存储在类meta中,但事实并非如此,所以请不要建议这个解决方案.
我有2个表:用户和角色,我有一个表将这些表连接在一起.连接表中唯一的东西是链接2个表的ID.
我该怎么称呼这张桌子?我从来没有真正看到过这个很好的命名惯例.
我以前见过的约定:
例如:
Users:
Id
Name
Roles:
Id
Name
TableThatJoinsTheTwo:
Id
UserId
RoleId
Run Code Online (Sandbox Code Playgroud) 我们如何命名字典变量?
用我的方法说Dictionary<string, List<string>> dictionary;,其中dictionary国家名称和值的键是省/州名称列表.我该如何重命名dictionary?
我知道我们可以Country为这个例子创建一个类.但是请不要提到这个替代方案,因为我在这里考虑好的命名约定.