header:
- name: ['Name', ['rowname']]
- Inp: ['Input ranges*', ['Inp']]
- Acc: ['Accumulator', ['Acc']]
- Ret: ['Output ranges', ['Ret']]
- Ops: ['Operations†', ['Ops']]
- Def: ['Default operations', ['Def']]
- Cpx: ['Complexity', ['Cpx']]
- Dir: ['Order‡', ['Dir']]
- Cmp: ['Compare to', ['Cmp']]
- Family: ['Family', ['Family', 'hidden']]
data:
- name: '{std:transform_@inclusive_@scan}'
id: 'std:transform_inclusive_scan'
Inp: '1{^↓I,∥F|FN:raccess}'
Acc: 'First, Arg'
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: 'aR, uT'
Def: ''
Cpx: 'O(N)'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '20'
- name: '{std:transform_@exclusive_@scan}'
id: 'std:transform_exclusive_scan'
Inp: '1{^↓I,∥F|FN:raccess}'
Acc: 'Arg'
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: 'aR, uT'
Def: ''
Cpx: 'O(N)'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '20'
- name: '{std:partial_@sum}'
id: 'std:partial_sum'
Inp: '1{^↓I|FN:raccess}'
Acc: 'First'
Ret: '1{^↓O|FN:raccess}'
Ops: 'A'
Def: '{std:plus}'
Cpx: 'O(N), =(N - 1)'
Dir: 'Fwd.'
Cmp: ''
Family: '30'
- name: '{std:inclusive_@scan}'
id: 'std:inclusive_scan'
Inp: '1{^↓I,∥F|FN:raccess}'
Acc: 'First, Arg'
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: 'aR'
Def: '{std:plus}'
Cpx: 'O(N)'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '30'
- name: '{std:exclusive_@scan}'
id: 'std:exclusive_scan'
Inp: '1{^↓I,∥F|FN:raccess}'
Acc: 'Arg'
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: 'aR'
Def: '{std:plus}'
Cpx: 'O(N)'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '30'
- name: '{std:adjacent_@difference}'
id: 'std:adjacent_difference'
Inp: '1s{^↓I,∥F|FN:raccess}'
Acc: 'Quasi'
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: 'fD'
Def: '{std:minus}'
Cpx: 'O(N), =(N - 1)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: '{#CH:adjacent_@transform}'
Family: '40'
- name: '{CH:adjacent_@transform}{▸|YT:sEvYmb3eKsw?t=}'
id: 'CH:adjacent_transform'
Inp: '1s{^↓I|FN:raccess}'
Acc: 'Quasi'
Ret: '1{^↓O|FN:raccess}'
Ops: 'D'
Def: ''
Cpx: 'O(N), =(N - 1)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: '{#std:adjacent_@difference}'
Family: '40'
- name: '{CH:adjacent_@inclusive_@scan}{▸|YT:sEvYmb3eKsw?t=51m}'
id: 'CH:adjacent_inclusive_scan'
Inp: '1s{^↓I|FN:raccess}'
Acc: 'First'
Ret: '1{^↓O|FN:raccess}'
Ops: 'A, D'
Def: ''
Cpx: 'O(N)'
Dir: 'Fwd.'
Cmp: ''
Family: '50'
- name: '{std:transform}'
id: 'std:transform'
Inp: '1{^↓I,∥F|FN:raccess} / 2{^↓I,∥F|FN:raccess}'
Acc: ''
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: 'uT / bT'
Def: ''
Cpx: '=(N)'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '60'
- name: '{std:copy}'
id: 'std:copy'
Inp: '1{^↓I,∥F|FN:raccess}'
Acc: ''
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: ''
Def: ''
Cpx: '=(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: '{#std:transform}'
Family: '60'
- name: '{std:copy_@backward}'
id: 'std:copy_backward'
Inp: '1{^↓B|FN:raccess}'
Acc: ''
Ret: '1{^↓B|FN:raccess}'
Ops: ''
Def: ''
Cpx: '=(N)'
Dir: 'Rev.'
Cmp: ''
Family: '60'
- name: '{std:copy_n}'
id: 'std:copy_n'
Inp: '1{^↓I,∥F|FN:raccess}'
Acc: ''
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: ''
Def: ''
Cpx: '=(N)'
Dir: 'Unspc., {∥|FN:par}'
Cmp: '{#std:transform}'
Family: '60'
- name: '{std:replace_@copy}'
id: 'std:replace_copy'
Inp: '1{^↓I,∥F|FN:raccess}+Value'
Acc: 'Arg'
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: ''
Def: '{std:equal_to}'
Cpx: '=(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: '{#std:transform}'
Family: '60'
- name: '{std:replace_@copy_if}'
id: 'std:replace_copy_if'
Inp: '1{^↓I,∥F|FN:raccess}'
Acc: 'Arg'
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: 'uP'
Def: ''
Cpx: '=(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: '{#std:transform}'
Family: '60'
- name: '{std:reverse_@copy}'
id: 'std:reverse_copy'
Inp: '1{^↓B|FN:raccess}'
Acc: ''
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: ''
Def: ''
Cpx: '=(N)'
Dir: '{∥|FN:par}'
Cmp: '{#std:transform}'
Family: '60'
- name: '{std:rotate_@copy}'
id: 'std:rotate_copy'
Inp: '1d{^↓F|FN:raccess}'
Acc: ''
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: ''
Def: ''
Cpx: 'O(N)'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '60'
- name: '{std:move (algorithm)}'
id: 'std:move.algorithm'
Inp: '1{^↓I,∥F|FN:raccess}'
Acc: ''
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: ''
Def: ''
Cpx: '=(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: '{#std:shift_left}'
Family: '65'
- name: '{std:move_@backward}'
id: 'std:move_backward'
Inp: '1{^↓B|FN:raccess}'
Acc: ''
Ret: '1{^↓B|FN:raccess}'
Ops: ''
Def: ''
Cpx: '=(N)'
Dir: 'Rev.'
Cmp: '{#std:shift_@right}'
Family: '65'
- name: '{std:shift_@left}'
id: 'std:shift_left'
Inp: '1d{^↓F|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: ''
Def: ''
Cpx: '"≤(N-n)"'
Dir: 'Fwd., {∥|FN:par}'
Cmp: '{#%move (algorithm)|std:move.algorithm}'
Family: '67'
- name: '{std:shift_@right}'
id: 'std:shift_right'
Inp: '1d{^↓F(swap),B|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: ''
Def: ''
Cpx: '"≤(N-n)"'
Dir: 'Yes, {∥|FN:par}'
Cmp: '{#std:move_@backward}'
Family: '67'
- name: '{std:sample}'
id: 'std:sample'
Inp: '1{^↓F|FN:raccess}'
Acc: 'Arg(URBG)'
Ret: '1{^↓O|FN:raccess}+Size'
Ops: ''
Def: ''
Cpx: 'O(N)'
Dir: 'Fwd.'
Cmp: ''
Family: '70'
- name: '{std:sample}{^Ⓢ|FN:sample}'
id: 'std:sampleI'
Inp: '1{^↓I|FN:raccess}'
Acc: 'Arg(URBG)'
Ret: '1{^↓R|FN:raccess}+Size'
Ops: ''
Def: ''
Cpx: 'O(N)'
Dir: 'Fwd.'
Cmp: ''
Family: '70'
- name: '{std:partial_@sort_@copy}'
id: 'std:partial_sort_copy'
Inp: '1{^↓I,∥F|FN:raccess}'
Acc: ''
Ret: '1{^↓R|FN:raccess}'
Ops: 'bP'
Def: '{std:less}'
Cpx: 'O(N log(min(D,N))'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '70'
- name: '{std:partition_@copy}'
id: 'std:partition_copy'
Inp: '1{^↓I,∥F|FN:raccess}'
Acc: ''
Ret: '2{^↓O,∥F|FN:raccess}'
Ops: 'uP'
Def: ''
Cpx: '=(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: ''
Family: '73'
- name: '{kblib:transform_if}'
id: 'kblib:transform_if'
Inp: '1{^↓I|FN:raccess}'
Acc: ''
Ret: '1{^↓O|FN:raccess}'
Ops: 'uP, uT'
Def: ''
Cpx: 'O(N)'
Dir: 'Fwd.'
Cmp: ''
Family: '75'
- name: '{std:copy_if}, {std:remove_@copy_if}'
id: 'std:copy_if'
Inp: '1{^↓I,∥F|FN:raccess}'
Acc: ''
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: 'uP'
Def: ''
Cpx: 'O(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: '{#kblib:transform_if}'
Family: '75'
- name: '{std:remove_@copy}'
id: 'std:remove_copy'
Inp: '1{^↓I,∥F|FN:raccess}+Value'
Acc: ''
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: ''
Def: '{std:equal_to}'
Cpx: '=(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: '{#kblib:transform_if}'
Family: '75'
- name: '{std:unique_@copy}'
id: 'std:unique_copy'
Inp: '1{^↓I,∥F|FN:raccess}'
Acc: 'First'
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: 'bP'
Def: '{std:equal_to}'
Cpx: 'O(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: ''
Family: '75'
- name: '{std:set_@difference}, {std:set_@intersection}, {std:set_@symmetric_@difference}, {std:set_@union}'
id: 'std:set_difference'
Inp: '2{^↓I,∥F|FN:raccess}'
Acc: ''
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: 'bP'
Def: '{std:less}'
Cpx: 'O(N+M), ≤(2â‹…(N+M)−1)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: ''
Family: '77'
- name: '{std:merge}'
id: 'std:merge'
Inp: '2{^↓I,∥F|FN:raccess}'
Acc: ''
Ret: '1{^↓O,∥F|FN:raccess}'
Ops: 'bP'
Def: '{std:less}'
Cpx: 'O(N+M)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: ''
Family: '77'
- name: '{std:regex_@replace}{^⧫|FN:re}'
id: 'std:regex_replace'
Inp: '2{^↓B|FN:raccess}'
Acc: ''
Ret: '1{^↓O|FN:raccess}'
Ops: 'Regex{^⧫|FN:re}'
Def: ''
Cpx: 'Unspc.'
Dir: ''
Cmp: 'See note{^⧫|FN:re}'
Family: '78'
- name: '{kblib:search_@replace_@copy}'
id: 'kblib:search_replace_copy'
Inp: '3{^↓F|FN:raccess}'
Acc: ''
Ret: '1{^↓O|FN:raccess}'
Ops: 'bP'
Def: '{std:equal_to}'
Cpx: 'O(N×(S+R))'
Dir: ''
Cmp: '{#std:regex_@replace}{^⧫|FN:re}'
Family: '78'
- name: '{std:generate}, {std:generate_n}'
id: 'std:generate'
Inp: '0'
Acc: ''
Ret: '1{^↓F|FN:raccess}'
Ops: 'G'
Def: ''
Cpx: '=(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: ''
Family: '100'
- name: '{std:iota}'
id: 'std:iota'
Inp: '0'
Acc: 'Arg'
Ret: '1{^↓F|FN:raccess}'
Ops: ''
Def: '{$:++}'
Cpx: '=(N)'
Dir: 'Fwd.'
Cmp: '{#std:generate}'
Family: '100'
- name: '{kblib:iota}'
id: 'kblib:iota'
Inp: '0'
Acc: 'Arg'
Ret: '1{^↓F|FN:raccess}'
Ops: 'uT'
Def: '{:++}'
Cpx: '=(N)'
Dir: 'Fwd.'
Cmp: '{#std:generate}'
Family: '100'
- name: '{std:fill}, {std:fill_n}'
id: 'std:fill'
Inp: '0'
Acc: 'Arg'
Ret: '1{^↓F|FN:raccess}'
Ops: ''
Def: ''
Cpx: '=(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: '{#std:generate}, {#std:generate_n}'
Family: '100'
- name: '{std:for_@each}, {std:for_@each_n}'
id: 'std:for_each'
Inp: '1{^↓I,∥F|FN:raccess}'
Acc: ''
Ret: '0{^∅|FN:for-each}'
Ops: 'muT'
Def: ''
Cpx: '=(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: ''
Family: '140'
- name: '{kblib:for_@each}, {kblib:for_@each_n}'
id: 'kblib:for_each'
Inp: '1{^↓I|FN:raccess} / 2{^↓I|FN:raccess}'
Acc: ''
Ret: '0{^∅|FN:for-each}'
Ops: 'muT / mbT'
Def: ''
Cpx: '=(N)'
Dir: 'Fwd.'
Cmp: ''
Family: '140'
- name: '{std:swap_@ranges}'
id: 'std:swap_ranges'
Inp: '2{^↓F|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: ''
Def: '{$std:swap}'
Cpx: 'O(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: '{#kblib:for_@each}'
Family: '140'
- name: '{%remove|std:remove ()}'
id: 'std:remove.algorithm'
Inp: '1{^↓F|FN:raccess}+Value'
Acc: ''
Ret: 'Self'
Ops: ''
Def: '{std:equal_to}'
Cpx: 'O(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: ''
Family: '150'
- name: '{std:remove_if}'
id: 'std:remove_if'
Inp: '1{^↓F|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'uP'
Def: ''
Cpx: 'O(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: ''
Family: '150'
- name: '{std:unique}'
id: 'std:unique'
Inp: '1{^↓F|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'bP'
Def: '{std:equal_to}'
Cpx: 'O(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: ''
Family: '150'
- name: '{std:replace}'
id: 'std:replace'
Inp: '1{^↓F|FN:raccess}+Value'
Acc: ''
Ret: 'Self'
Ops: ''
Def: '{std:equal_to}'
Cpx: '=(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: '{#std:transform}'
Family: '160'
- name: '{std:replace_if}'
id: 'std:replace_if'
Inp: '1{^↓F|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'uP'
Def: ''
Cpx: '=(N)'
Dir: 'Fwd., {∥|FN:par}'
Cmp: '{#std:transform}'
Family: '160'
- name: '{std:reverse}'
id: 'std:reverse'
Inp: '1{^↓B|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: ''
Def: ''
Cpx: 'O(N), =(N/2)'
Dir: 'Yes, {∥|FN:par}'
Cmp: '{#std:swap_ranges}'
Family: '170'
- name: '{std:rotate}'
id: 'std:rotate'
Inp: '1d{^↓F|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: ''
Def: ''
Cpx: 'O(N)'
Dir: 'Yes, {∥|FN:par}'
Cmp: ''
Family: '170'
- name: '{std:shuffle}'
id: 'std:shuffle'
Inp: '1{^↓R|FN:raccess}'
Acc: 'Acc(URBG)'
Ret: 'Self'
Ops: ''
Def: ''
Cpx: 'O(N)'
Dir: ''
Cmp: ''
Family: '170'
- name: '{std:next_@permutation}, {std:prev_@permutation}'
id: 'std:next_permutation'
Inp: '1{^↓B|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: ''
Def: ''
Cpx: 'O(N), ≤(N/2)'
Dir: ''
Cmp: ''
Family: '170'
- name: '{std:partition}'
id: 'std:partition'
Inp: '1{^↓F|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'uP'
Def: ''
Cpx: 'O(N); O(N log N){^↓∥|FN:raccess}'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '170'
- name: '{std:stable_@partition}'
id: 'std:stable_partition'
Inp: '1{^↓B|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'uP'
Def: ''
Cpx: 'O(N) w/ memory, else O(N log N); O(N log N){^↓∥|FN:raccess}'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '170'
- name: '{std:sort}'
id: 'std:sort'
Inp: '1{^↓R|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'bP'
Def: '{std:less}'
Cpx: 'O(N log N)'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '170'
- name: '{std:partial_@sort}'
id: 'std:partial_sort'
Inp: '1d{^↓R|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'bP'
Def: '{std:less}'
Cpx: 'O(N log M)'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '170'
- name: '{std:stable_@sort}'
id: 'std:stable_sort'
Inp: '1{^↓R|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'bP'
Def: '{std:less}'
Cpx: 'O(N log N) w/ memory, else O(N log(N)2)'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '170'
- name: '{std:nth_@element}'
id: 'std:nth_element'
Inp: '1d{^↓R|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'bP'
Def: '{std:less}'
Cpx: 'O(N); O(N log N){^↓∥|FN:raccess}'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '170'
- name: '{%nth_@elements, multi_@nth_@element|wg21:p2375}'
id: 'wg21:nth_elements'
Inp: '1{^↓R|FN:raccess}+positions{^↓R|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'bP'
Def: '{std:less}'
Cpx: 'O(N log M)'
Dir: ''
Cmp: '{#std:nth_@element}'
Family: '170'
- name: '{std:make_@heap}'
id: 'std:make_heap'
Inp: '1{^↓R|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'bP'
Def: '{std:less}'
Cpx: 'O(N), ≤(3N)'
Dir: ''
Cmp: ''
Family: '170'
- name: '{std:push_@heap}, {std:pop_@heap}'
id: 'std:push_heap'
Inp: '1{^↓R|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'bP'
Def: '{std:less}'
Cpx: 'O(log N)'
Dir: ''
Cmp: ''
Family: '170'
- name: '{std:sort_@heap}'
id: 'std:sort_heap'
Inp: '1{^↓R|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'bP'
Def: '{std:less}'
Cpx: 'O(N log N)'
Dir: ''
Cmp: ''
Family: '170'
- name: '{std:inplace_@merge}'
id: 'std:inplace_merge'
Inp: '1d{^↓B|FN:raccess}'
Acc: ''
Ret: 'Self'
Ops: 'bP'
Def: '{std:less}'
Cpx: '=(N-1) w/ memory, O(N log N); O(N log N){^↓∥|FN:raccess}'
Dir: '{∥|FN:par}'
Cmp: ''
Family: '170'