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であるかどうかを戻す。