6.33. kink/container/ORDERED_MAP

6.33.1. ordered_map型

ordered_mapは、キーの全順序をサポートするmapの部分型である。キーの同値関係は、全順序から導出される。

6.33.1.1. Map.key_iter(...[Min_key])

key_iterは、順序付けされたキーのiterを戻す。Min_keyが渡された場合、iterはMin_keyと同値かより大きいキーを含む。Min_keyが渡されない場合、iterはMapのすべてのキーを含む。

ordered_mapのkey_iterメソッドは、map型のkey_iterの契約を拡張する。

事前条件

Min_keyはキーの全順序の定義域に含まれなければならない。

:TREE_MAP.require_from('kink/container/')

:Map <- TREE_MAP.of(
  'foo' 'FOO'
  'bar' 'BAR'
  'baz' 'BAZ'
  'qux' 'QUX'
  'grault' 'GRAULT'
)
Map.key_iter.each{(:K)
  stdout.print_line(K.repr)
}
# Output:
#   "bar"
#   "baz"
#   "foo"
#   "grault"
#   "qux"

Map.key_iter('f').each{(:K)
  stdout.print_line(K.repr)
}
# Output:
#   "foo"
#   "grault"
#   "qux"

6.33.1.2. Map.pair_iter(...[Min_key])

pair_iterは、キーで順序付けられた[Key Val]のペアのiterを戻す。Min_keyが渡された場合、iterは、Min_keyと同値かより大きいキーのペアを含む。Min_keyが渡されない場合、iterはMapのすべてのキー/値ペアを含む。

ordered_mapのpair_iterメソッドは、map型のpair_iterの契約を拡張する。

事前条件

Min_keyはキーの全順序の定義域に含まれなければならない。

:TREE_MAP.require_from('kink/container/')

:Map <- TREE_MAP.of(
  'foo' 'FOO'
  'bar' 'BAR'
  'baz' 'BAZ'
  'qux' 'QUX'
  'grault' 'GRAULT'
)

Map.pair_iter.each{(:Pair)
  stdout.print_line(Pair.repr)
}
# Output:
#   ["bar" "BAR"]
#   ["baz" "BAZ"]
#   ["foo" "FOO"]
#   ["grault" "GRAULT"]
#   ["qux" "QUX"]

Map.pair_iter('f').each{(:Pair)
  stdout.print_line(Pair.repr)
}
# Output:
#   ["foo" "FOO"]
#   ["grault" "GRAULT"]
#   ["qux" "QUX"]

6.33.1.3. Map.front_key

front_keyは、順序で最初に来るキーを戻す。

事前条件

Mapは空であってはならない。

:TREE_MAP.require_from('kink/container/')

:Map <- TREE_MAP.of(
  'foo' 'FOO'
  'bar' 'BAR'
  'baz' 'BAZ'
  'qux' 'QUX'
  'grault' 'GRAULT'
)
stdout.print_line(Map.front_key.repr) # => "bar"

6.33.1.4. Map.back_key

front_keyは、順序で最後に来るキーを戻す。

事前条件

Mapは空であってはならない。

:TREE_MAP.require_from('kink/container/')

:Map <- TREE_MAP.of(
  'foo' 'FOO'
  'bar' 'BAR'
  'baz' 'BAZ'
  'qux' 'QUX'
  'grault' 'GRAULT'
)
stdout.print_line(Map.back_key.repr) # => "qux"

6.33.2. ORDERED_MAP.is?(Val)

is?はValがordered_mapであるかどうかを戻す。