dict_size
Abstract
Returns the number of key:value pairs in a dict
Description
A hashtable is a mapping from a key to a value. The dict_
family of opcodes
implement a hashtable mapping either strings or integers to strings or floats.
dict_size
returns the number of such key:value pairs inside a dict. If the handle
passed does not point to a valid dict, dict_size
returns -1. It is thus possible
to use it to check that the passed handle is valid (similar to dict_query idict "exists"
,
see dict_query)
dict_size
can be used together with dict_iter to iterate over the key:value
pairs
Syntax
isize dict_size idict
ksize dict_size idict
dict_size
executes both at i-time and k-time.
Arguments
ìdict
: the handle of the dict, as returned bydict_new
Output
ksize
: the number of key:value pairs in the dict
Execution Time
- Init
- Performance
Examples
<CsoundSynthesizer>
<CsOptions>
--nosound
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 32
nchnls = 2
instr 1
; create a local dict, mapping strings to numbers
idict dict_new "sf"
; set key a key:value pair
dict_set idict, "bar", 123
ksize = dict_size(idict)
printf "size: %d", 1, ksize
dict_set idict, "foo", 4
ksize = dict_size(idict)
printf "size: %d", 1, ksize
; size does not change now
dict_set idict, "foo", 10
ksize = dict_size(idict)
printf "size: %d", 1, ksize
; we delete a key, size is reduced
dict_set idict, "foo"
ksize = dict_size(idict)
printf "size: %d", 1, ksize
turnoff
endin
</CsInstruments>
<CsScore>
i 1 0 1
</CsScore>
</CsoundSynthesizer>
See also
Credits
Eduardo Moguillansky, 2019