程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 避免重復代碼——know your library(續)(3)

避免重復代碼——know your library(續)(3)

編輯:關於C語言

可惜裝這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. 下一頁:
Copyright © 程式師世界 All Rights Reserved