Tags: C++ STL
最近在練習使用 C++ STL 中的 Container 功能。嗯,寫著寫著,覺得很不順手啊。例如不能用 Vector/Set/Map 直接建表。Stack 的 pop() 方法沒有回傳值;我用 C 寫的 stack 功能, pop() 是會推一個值出來的。
挑了兩個 STL Container 的練習程式碼,再用 Ruby 寫一段相同的。兩相比較,也算在吐槽吧。
Vector 練習
把字元陣列的內容放入 Vector 容器 vec 中。將 vec 中的每個字元都轉換成大寫字母,最後倒著顯示。
輸出結果如下:
H
e
l
l
o
O
L
L
E
H
C++: 21-3.cc
不接受 vector vec("Hello")
的寫法。每次要建立一個容器時,總少不了重覆的存入動作程式碼。
Ruby: 21-3.rb
Map 練習
用 Map 建立一個顏色名稱與 RGB 代碼的對照表。輸出結果如下列:
blue => #0000ff
red => #ff0000
green => #00ff00
black => #ffffff
white => #000
'blue' Find! It's value is #0000ff
C++: 22-2.cc
原本用 C 字串陣列,後來改用 String
陣列。然而這個陣列 ss 只是「初始值」,還要重覆將這些初始值存入 Map 容器 myMap 中的程式碼。
Ruby: 22-2.rb
Ruby 可以直接建立對照表,不需要另外建立容器。
樂多舊網址: http://blog.roodo.com/rocksaying/archives/3679815.html
樂多舊回應