WEB开发网
开发学院软件开发C语言 避免重复代码——know your library(续) 阅读

避免重复代码——know your library(续)

 2009-06-03 08:30:30 来源:WEB开发网   
核心提示: 可惜装这VS2010CTP的机器现在不在手上,不然倒可以试试我有没有记错C++0x里的lambda语法,避免重复代码——know your library(续)(3),没错,VS2010已经支持部分的C++0x标准了,如果用tuple,要对这样一个list排序的话…&hell

可惜装这VS2010CTP的机器现在不在手上,不然倒可以试试我有没有记错C++0x里的lambda语法。没错,VS2010已经支持部分的C++0x标准了,很多东西都会变得更方便 XD

不过VS2010支不支持新的range-based for statement来着?忘了……查了一下,发现是不会 T T

因为这个新的for循环语句是基于concept,而concept在VC10的编译器的编写过程中还没定案,所以……T T

当然,如果Person这个struct有一个公认的自然顺序,那最好还是直接在里面重载<运算符,那样要排序的话就能直接用两个参数版本的sort()了。不过这里举的例子是题目,struct里的内容不让改,也就罢了。

题外话,不过这样的一个裸struct在F#里用tuple或者record来表示也可以嘛。如果用tuple,要对这样一个list排序的话……

F#代码  

let l = [(2, "smith"); (1, "john"); (2, "micheal"); (1, "micheal"); (3, "albert")]
List.sort compare l;;
// val it : (int * string) list = [(1, "john"); (1, "micheal"); (2, "micheal"); (2, "smith"); (3, "albert")]

用List.sort compare就行了 T T 还有什么能比这个更方便的么?

Hmm,Ruby要是不用Struct来建个类型而是直接用数组的话……

Ruby代码  

 l = [[2, "smith"], [1, "john"], [2, "micheal"], [1, "micheal"], [3, "albert"]]
l.sort
#=> [[1, "john"], [1, "micheal"], [2, "micheal"], [2, "smith"], [3, "albert"]]

脚本语言用起来不爽的话就没存在价值了 XDD

牢骚一篇,结束(逃

上一页  1 2 3 

Tags:避免 重复 代码

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接