This page has been translated automatically.
Video Tutorials
Interface
Essentials
Advanced
How To
Professional (SIM)
UnigineEditor
Interface Overview
Assets Workflow
Settings and Preferences
Working With Projects
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Lighting
Sandworm
Using Editor Tools for Specific Tasks
Extending Editor Functionality
Built-in Node Types
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Materials and Shaders
Rebuilding the Engine Tools
GUI
Double Precision Coordinates
API
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Content Creation
Content Optimization
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Warning! This version of documentation is OUTDATED, as it describes an older SDK version! Please switch to the documentation for the latest SDK version.
Warning! This version of documentation describes an old SDK version which is no longer supported! Please upgrade to the latest SDK version.

Unigine::BiMap Class

Header: #include <UnigineBiMap.h>

A bidirectional map container template that contains the key-value pairs of one-to-one correspondence. The bimap allows fast bidirectional lookup between keys and values.

BiMap Class

Members


BiMap ( ) #

Default constructor that produces an empty bimap.

BiMap ( std::initializer_list<Pair<Key,Type>> list ) #

Constructor. Creates a bimap from the given key-value pairs.

Arguments

  • std::initializer_list<Pair<Key,Type>> list - List of pairs.

BiMap ( const BiMap& o ) #

Constructor. Creates a bimap by copying a source bimap.

Arguments

  • const BiMap& o - Bimap.

BiMap ( BiMap&& o ) #

Constructor. Creates a bimap by copying a source bimap.

Arguments

  • BiMap&& o - Bimap.

BiMap<Key, Type, Allocator> & operator= ( const BiMap& o ) #

Assignment operator for the bimap.

Arguments

  • const BiMap& o - Bimap.

BiMap<Key, Type, Allocator> & operator= ( BiMap&& o ) #

Assignment operator for the bimap.

Arguments

  • BiMap&& o - Bimap.

void swap ( BiMap& o ) #

Swaps contents of the current bimap and the given one.

Arguments

  • BiMap& o - Bimap.

void clear ( ) #

Deletes all contents of the bimap.

size_t getMemoryUsage ( ) const#

Shows the amount of memory used by the bimap in bytes.

Return value

Used memory in bytes.

Iterator insert ( const Key& key, const Type& value ) #

Inserts an item with a given key and value into the bimap. If the item with the given key already exists and its value differs from the given one, the value is replaced.

Arguments

  • const Key& key - Key.
  • const Type& value - Value.

Return value

Item iterator. If the item with the given key and value already exists in the bimap, its iterator will be returned.

Iterator insert ( Key&& key, const Type& value ) #

Inserts an item with a given key and value into the bimap. If the item with the given key already exists and its value differs from the given one, the value is replaced.

Arguments

  • Key&& key - Key.
  • const Type& value - Value.

Return value

Item iterator. If the item with the given key and value already exists in the bimap, its iterator will be returned.

Iterator insert ( const Key& key, Type&& value ) #

Inserts an item with a given key and value into the bimap. If the item with the given key already exists and its value differs from the given one, the value is replaced.

Arguments

  • const Key& key - Key.
  • Type&& value - Value.

Return value

Item iterator. If the item with the given key and value already exists in the bimap, its iterator will be returned.

Iterator insert ( Key&& key, Type&& value ) #

Inserts an item with a given key and value into the bimap. If the item with the given key already exists and its value differs from the given one, the value is replaced.

Arguments

  • Key&& key - Key.
  • Type&& value - Value.

Return value

Item iterator. If the item with the given key and value already exists in the bimap, its iterator will be returned.

void insert ( const BiMap& m ) #

Inserts a given bimap into the current one. If the item with the given key already exists in the current bimap and its value differs from the given one, the value is replaced.

Arguments

  • const BiMap& m - Bimap.

void insert ( BiMap&& m ) #

Inserts a given bimap into the current one. If the item with the given key already exists in the current bimap and its value differs from the given one, the value is replaced.

Arguments

  • BiMap&& m - Bimap.

Iterator append ( const Key& key, const Type& value ) #

Appends an item with a given key and value to the bimap. If the item with the given key already exists and its value differs from the given one, the value is replaced.

Arguments

  • const Key& key - Key.
  • const Type& value - Value.

Return value

Added item iterator. If the item with the given key and value already exists in the bimap, its iterator will be returned.

Iterator append ( Key&& key, const Type& value ) #

Appends an item with a given key and value to the bimap. If the item with the given key already exists and its value differs from the given one, the value is replaced.

Arguments

  • Key&& key - Key.
  • const Type& value - Value.

Return value

Added item iterator. If the item with the given key and value already exists in the bimap, its iterator will be returned.

Iterator append ( const Key& key, Type&& value ) #

Appends an item with a given key and value to the bimap. If the item with the given key already exists and its value differs from the given one, the value is replaced.

Arguments

  • const Key& key - Key.
  • Type&& value - Value.

Return value

Added item iterator. If the item with the given key and value already exists in the bimap, its iterator will be returned.

Iterator append ( Key&& key, Type&& value ) #

Appends an item with a given key and value to the bimap. If the item with the given key already exists and its value differs from the given one, the value is replaced.

Arguments

  • Key&& key - Key.
  • Type&& value - Value.

Return value

Added item iterator. If the item with the given key and value already exists in the bimap, its iterator will be returned.

void append ( const BiMap& m ) #

Appends a given bimap to the current one. If the item with the given key already exists in the current bimap and its value differs from the given one, the value is replaced.

Arguments

  • const BiMap& m - Bimap.

void append ( BiMap&& m ) #

Appends a given bimap to the current one. If the item with the given key already exists in the current bimap and its value differs from the given one, the value is replaced.

Arguments

  • BiMap&& m - Bimap.

const Type & emplace ( const Key& key, Args&& args ) #

Inserts an item with a specified key into the bimap. The new item value is constructed in-place with the given arguments avoiding unnecessary copying. If the item with the given key already exists and its value differs from the constructed one, the value is replaced.

Arguments

  • const Key& key - Key.
  • Args&& args - Arguments for an item value constructor.

Return value

Inserted item value. If the item already exists in the bimap, its iterator will be returned.

const Type & emplace ( Key&& key, Args&& args ) #

Inserts an item with a specified key into the bimap. The new item value is constructed in-place with the given arguments avoiding unnecessary copying. If the item with the given key already exists and its value differs from the constructed one, the value is replaced.

Arguments

  • Key&& key - Key.
  • Args&& args - Arguments for an item value constructor.

Return value

Inserted item value. If the item already exists in the bimap, its iterator will be returned.

Iterator appendFast ( const Key& key, const Type& value ) #

Appends an item with a given key and value to the bimap.

Arguments

  • const Key& key - Key.
  • const Type& value - Value.

Return value

Added item iterator.

Iterator appendFast ( Key&& key, const Type& value ) #

Appends an item with a given key and value to the bimap.

Arguments

  • Key&& key - Key.
  • const Type& value - Value.

Return value

Added item iterator.

Iterator appendFast ( const Key& key, Type&& value ) #

Appends an item with a given key and value to the bimap.

Arguments

  • const Key& key - Key.
  • Type&& value - Value.

Return value

Added item iterator.

Iterator appendFast ( Key&& key, Type&& value ) #

Appends an item with a given key and value to the bimap.

Arguments

  • Key&& key - Key.
  • Type&& value - Value.

Return value

Added item iterator.

void appendFast ( const BiMap& m ) #

Appends a given bimap to the current one.

Arguments

  • const BiMap& m - Bimap.

void appendFast ( BiMap&& m ) #

Appends a given bimap to the current one.

Arguments

  • BiMap&& m - Bimap.

const Type & emplaceFast ( const Key& key, Args&& args ) #

Inserts an item with a specified key into the bimap. The new item value is constructed in-place with the given arguments avoiding unnecessary copying.

Arguments

  • const Key& key - Key.
  • Args&& args - Arguments for an item value constructor.

Return value

Inserted item value.

const Type & emplaceFast ( Key&& key, Args&& args ) #

Inserts an item with a specified key into the bimap. The new item value is constructed in-place with the given arguments avoiding unnecessary copying.

Arguments

  • Key&& key - Key.
  • Args&& args - Arguments for an item value constructor.

Return value

Inserted item value.

bool contains ( const T& key ) const#

Checks if an item with a given key exists in the bimap.

Arguments

  • const T& key - Key.

Return value

Returns 1 if the item exists; otherwise, 0 is returned.

bool contains ( const TypeKey& key, const Type& value ) const#

Checks if an item with a given key and value exists in the bimap.

Arguments

  • const TypeKey& key - Key.
  • const Type& value - Value.

Return value

Returns 1 if the item exists; otherwise, 0 is returned.

Iterator replace ( TypeKey&& key, TypeValue&& value ) #

Searches for an item with a given key in the bimap and replaces its value with a given one.

Arguments

  • TypeKey&& key - Key.
  • TypeValue&& value - Value.

Return value

Item iterator.

Iterator replaceData ( TypeKey&& key, TypeValue&& value ) #

Searches for an item with a given value in the bimap and replaces its key with a given one.

Arguments

  • TypeKey&& key - Key.
  • TypeValue&& value - Value.

Return value

Item iterator.

const Type & operator[] ( const Key& key ) const#

Bimap item access.

Arguments

  • const Key& key - Key.

Return value

Accessed item value.

const Type & get ( const Key& key ) const#

Returns a value by a given key.

Arguments

  • const Key& key - Key.

Return value

Value.

const Key & getKey ( const Type& value ) const#

Returns a key by a given value.

Arguments

  • const Type& value - Value.

Return value

Key.

Iterator findData ( const T& v ) #

Searches for an item with a given value in the bimap.

Arguments

  • const T& v - Value.

Return value

Item iterator.

ConstIterator findData ( const T& v ) const#

Searches for an item with a given value in the bimap.

Arguments

  • const T& v - Value.

Return value

Item iterator.

bool containsData ( const T& v ) const#

Checks if an item with a specified value exists in the bimap.

Arguments

  • const T& v - Value.

Return value

Returns 1 if the item exists; otherwise, 0 is returned.

bool remove ( const Key& key ) #

Removes an item with a given key from the bimap.

Arguments

  • const Key& key - Key.

Return value

Returns 1 if the item is removed successfully; otherwise, 0 is returned.

bool remove ( const Iterator& it ) #

Removes a given item from the bimap.

Arguments

  • const Iterator& it - Item iterator.

Return value

Returns 1 if the item is removed successfully; otherwise, 0 is returned.

bool remove ( const ConstIterator& it ) #

Removes a given item from the bimap.

Arguments

  • const ConstIterator& it - Item iterator.

Return value

Returns 1 if the item is removed successfully; otherwise, 0 is returned.

bool erase ( const Key& key ) #

Removes an item by the given key from the bimap.

Arguments

  • const Key& key - Key.

Return value

Returns 1 if the item is deleted successfully; otherwise, 0 is returned.

Iterator erase ( const Iterator& it ) #

Removes a given item from the bimap.

Arguments

  • const Iterator& it - Item iterator.

Return value

Iterator of the item following the removed one.

ConstIterator erase ( const ConstIterator& it ) #

Removes a given item from the bimap.

Arguments

  • const ConstIterator& it - Item iterator.

Return value

Iterator of the item following the removed one.

bool removeData ( const Type& value ) #

Removes an item with a given value from the bimap.

Arguments

  • const Type& value - Value.

Return value

Returns 1 if the item is removed successfully; otherwise, 0 is returned.

Type take ( const Key& key ) #

Removes an item with a given key from the bimap and returns its value.

Arguments

  • const Key& key - Key.

Return value

Removed item value.

bool take ( const Key& key, Type& ret ) #

Removes an item with a given key from the bimap and writes the item value to the second argument.

Arguments

  • const Key& key - Key.
  • Type& ret - Removed item value.

Return value

Returns 1 if the item is removed successfully; otherwise, 0 is returned.

Key takeData ( const Type& value ) #

Removes an item with a given value from the bimap and returns its key.

Arguments

  • const Type& value - Value.

Return value

Removed item key.

bool takeData ( const Type& value, Key& ret ) #

Removes an item with a given value from the bimap and writes the item key to the second argument.

Arguments

  • const Type& value - Value.
  • Key& ret - Removed item key.

Return value

Returns 1 if the item is removed successfully; otherwise, 0 is returned.

Type value ( const Key& key ) const#

Returns a value mapped to a given key in the bimap. If there is no such key, returns a default-constructed value.

Arguments

  • const Key& key - Key.

Return value

Value.

Type value ( const Key& key, const Type& def ) const#

Returns a value mapped to a given key in the bimap. If there is no such key, returns a default value.

Arguments

  • const Key& key - Key.
  • const Type& def - Default value.

Return value

Value.

const Type & valueRef ( const Key& key, const Type& def ) const#

Returns a value mapped to a given key in the bimap. If there is no such key, returns a default value.

Arguments

  • const Key& key - Key.
  • const Type& def - Default value.

Return value

Value.

Key key ( const Type& value ) const#

Returns a key mapped to a given value in the bimap. If there is no such value, returns a default-constructed key.

Arguments

  • const Type& value - Value.

Return value

Key.

Key key ( const Type& value, const Key& def ) const#

Returns a key mapped to a given value in the bimap. If there is no such value, returns a default key.

Arguments

  • const Type& value - Value.
  • const Key& def - Default key.

Return value

Key.

const Key & keyRef ( const Type& value, const Key& def ) const#

Returns a key mapped to a specified value in the bimap. If there is no such value, returns a default key.

Arguments

  • const Type& value - Value.
  • const Key& def - Default key.

Return value

Key.

int values ( ) const#

Returns a vector of all values of the bimap.

Return value

Vector of bimap values.

void getValues ( Vector<Type>& values ) const#

Appends the bimap values to a given vector.

Arguments

  • Vector<Type>& values - Vector of bimap values.

void getPairs ( Vector<Pair<Key,Type >>& pairs ) const#

Appends the bimap key-value pairs to a given vector.

Arguments

  • Vector<Pair<Key,Type >>& pairs - Vector of bimap key-value pairs.

bool operator== ( const BiMap& o ) const#

Checks if two bimaps are equal. The bimaps are considered equal if their key-value pairs are the same.

Arguments

  • const BiMap& o - Bimap.

Return value

Returns 1 if bimaps are equal; otherwise, 0 is returned.

bool operator!= ( const BiMap& o ) const#

Checks if two bimaps are not equal. The bimaps are considered equal if their key-value pairs are the same.

Arguments

  • const BiMap& o - Bimap.

Return value

Returns 1 if bimaps are not equal; otherwise, 0 is returned.
Last update: 2022-10-10
Build: ()