package containers-data

  1. Overview
  2. Docs

Module CCDequeSource

Imperative deque

This structure provides fast access to its front and back elements, with O(1) operations.

Sourcetype 'a t

Contains 'a elements, queue in both ways

Sourceexception Empty
Sourceval create : unit -> 'a t

New deque.

Sourceval clear : _ t -> unit

Remove all elements.

  • since 0.13
Sourceval is_empty : 'a t -> bool

Is the deque empty?

Sourceval equal : eq:('a -> 'a -> bool) -> 'a t -> 'a t -> bool

equal a b checks whether a and b contain the same sequence of elements.

  • parameter eq

    comparison function for elements.

  • since 0.13
Sourceval compare : cmp:('a -> 'a -> int) -> 'a t -> 'a t -> int

compare a b compares lexicographically a and b.

  • parameter cmp

    comparison function for elements.

  • since 0.13
Sourceval length : 'a t -> int

Number of elements. Used to be linear time, now constant time.

Sourceval push_front : 'a t -> 'a -> unit

Push value at the front.

Sourceval push_back : 'a t -> 'a -> unit

Push value at the back.

Sourceval peek_front : 'a t -> 'a

First value.

Sourceval peek_front_opt : 'a t -> 'a option

First value.

  • since 2.7
Sourceval peek_back : 'a t -> 'a

Last value.

Sourceval peek_back_opt : 'a t -> 'a option

Last value.

  • since 2.7
Sourceval remove_back : 'a t -> unit

Remove last value. If the deque is empty do nothing

  • since 2.7
Sourceval remove_front : 'a t -> unit

Remove first value. If the deque is empty do nothing

  • since 2.7
Sourceval take_back : 'a t -> 'a

Take last value.

Sourceval take_back_opt : 'a t -> 'a option

Take last value.

  • since 2.7
Sourceval take_front : 'a t -> 'a

Take first value.

Sourceval take_front_opt : 'a t -> 'a option

Take first value.

  • since 2.7
Sourceval update_back : 'a t -> ('a -> 'a option) -> unit

Update last value. If the deque is empty do nothing. If the function returns None, remove last element; if it returns Some x, replace last element with x.

  • since 2.7
Sourceval update_front : 'a t -> ('a -> 'a option) -> unit

Update first value. If the deque is empty do nothing. Similar to update_back but for the first value.

  • since 2.7
Sourceval append_front : into:'a t -> 'a t -> unit

append_front ~into q adds all elements of q at the front of into. O(length q) in time.

  • since 0.13
Sourceval append_back : into:'a t -> 'a t -> unit

append_back ~into q adds all elements of q at the back of into. O(length q) in time.

  • since 0.13
Sourceval iter : ('a -> unit) -> 'a t -> unit

Iterate on elements.

Sourceval fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b

Fold on elements.

  • since 0.13

Conversions

Sourcetype 'a gen = unit -> 'a option
Sourcetype 'a iter = ('a -> unit) -> unit
Sourceval of_iter : 'a iter -> 'a t

Create a deque from the sequence. Optional argument deque disappears, use add_iter_back instead.

  • since 0.13
Sourceval to_iter : 'a t -> 'a iter

Iterate on the elements.

Sourceval of_gen : 'a gen -> 'a t

of_gen g makes a deque containing the elements of g.

  • since 0.13
Sourceval to_gen : 'a t -> 'a gen

Iterate on the elements of the deque.

  • since 0.13
Sourceval add_iter_front : 'a t -> 'a iter -> unit

add_iter_front q seq adds elements of seq into the front of q, in reverse order. O(n) in time, where n is the number of elements to add.

  • since 0.13
Sourceval add_iter_back : 'a t -> 'a iter -> unit

add_iter_back q seq adds elements of seq into the back of q, in order. O(n) in time, where n is the number of elements to add.

  • since 0.13
Sourceval copy : 'a t -> 'a t

Fresh copy, O(n) in time.

Sourceval of_list : 'a list -> 'a t

Conversion from list, in order.

  • since 0.13
Sourceval to_list : 'a t -> 'a list

List of elements, in order. Less efficient than to_rev_list.

  • since 0.13
Sourceval to_rev_list : 'a t -> 'a list

Efficient conversion to list, in reverse order.

  • since 0.13
Sourceval filter : ('a -> bool) -> 'a t -> 'a t

Filter into a new copy.

  • since 2.7
Sourceval filter_map : ('a -> 'b option) -> 'a t -> 'b t

Filter map into a new copy

  • since 2.7
Sourceval filter_in_place : 'a t -> ('a -> bool) -> unit

Keep only elements that satisfy the predicate.

  • since 2.7

print

Sourcetype 'a printer = Format.formatter -> 'a -> unit
Sourceval pp : 'a printer -> 'a t printer

Print the elements.

  • since 0.13
OCaml

Innovation. Community. Security.