dynamic_set_mod Module

module~~dynamic_set_mod~~UsesGraph module~dynamic_set_mod dynamic_set_mod module~iterable_mod iterable_mod module~iterable_mod->module~dynamic_set_mod module~countable_mod countable_mod module~iterable_mod->module~countable_mod module~ordered_mod ordered_mod module~iterable_mod->module~ordered_mod module~abstract_container_mod abstract_container_mod module~abstract_container_mod->module~dynamic_set_mod module~abstract_container_mod->module~iterable_mod module~data_set_mod data_set_mod module~abstract_container_mod->module~data_set_mod module~iterator_mod iterator_mod module~abstract_container_mod->module~iterator_mod module~array_list_mod array_list_mod module~abstract_container_mod->module~array_list_mod module~list_mod list_mod module~abstract_container_mod->module~list_mod module~abstract_container_mod->module~ordered_mod module~deque_mod deque_mod module~abstract_container_mod->module~deque_mod module~data_set_mod->module~dynamic_set_mod module~iterator_mod->module~iterable_mod module~iterator_mod->module~array_list_mod module~iterator_mod->module~ordered_mod iso_fortran_env iso_fortran_env iso_fortran_env->module~abstract_container_mod module~countable_mod->module~data_set_mod module~countable_mod->module~ordered_mod module~array_list_mod->module~data_set_mod module~list_mod->module~array_list_mod module~ordered_mod->module~array_list_mod module~queue_mod queue_mod module~ordered_mod->module~queue_mod module~deque_mod->module~list_mod module~queue_mod->module~deque_mod
Help

Provides an abstract type for a dynamic set data structures. This data structure is similar to a normal data_set structure, but new items can be added to the set. It is similar to the set type in Python.

Used By

module~~dynamic_set_mod~~UsedByGraph module~dynamic_set_mod dynamic_set_mod module~multiset_mod multiset_mod module~dynamic_set_mod->module~multiset_mod
Help

Abstract Interfaces

abstract interface

  • public pure subroutine single_sub(this, item)

    Arguments

    Type IntentOptional AttributesName
    class(dynamic_set), intent(inout) :: this
    class(*), intent(in) :: item

    An item to add or remove from the set

abstract interface

  • public pure subroutine multiple_sub(this, items)

    Arguments

    Type IntentOptional AttributesName
    class(dynamic_set), intent(inout) :: this
    class(*), intent(in), dimension(:):: items

    An array containing items to add or remove from the set

abstract interface

  • public pure subroutine iter_sub(this, items)

    Arguments

    Type IntentOptional AttributesName
    class(dynamic_set), intent(inout) :: this
    class(iterable), intent(in) :: items

    An iterable containing items to add or remove from the set

abstract interface

  • public pure subroutine clear_sub(this)

    Arguments

    Type IntentOptional AttributesName
    class(dynamic_set), intent(inout) :: this

abstract interface

  • public function pop_func(this)

    Arguments

    Type IntentOptional AttributesName
    class(dynamic_set), intent(inout) :: this

    Return Value class(container), allocatable

    A random item which has been removed from the set


Derived Types

type, public, abstract, extends(data_set) :: dynamic_set

Type-Bound Procedures

procedure(single_sub), private, deferred :: add_single

Places the item in the set, if not already present

procedure(multiple_sub), private, deferred :: add_multiple

Places each item in the array into the set, if not already present

generic, public :: add => add_single, add_multiple
procedure(iter_sub), public, deferred :: add_iter

Places each item in the iterable into the set, if not already present.

procedure(single_sub), private, deferred :: remove_single

Removes the item from the set, if present

procedure(multiple_sub), private, deferred :: remove_multiple

Removes each item in the array from the set, if present

generic, public :: remove => remove_single, remove_multiple
procedure(iter_sub), public, deferred :: remove_iter

Removes each item in the iterable from the set, if present

procedure(pop_func), public, deferred :: pop

Removes a random item from the set and returns it

procedure(clear_sub), public, deferred :: clear

Removes all items from the set

Description

An abstract data type for dynamic sets. These are much like mathematical sets, but differ from the parent data_set type in that items can be added to or removed from the set. To accomplish this, various additional methods are available. This data type is similar to the set type in Python.