Functions
UStl.h File Reference

Wrappers of STL for convenient functions. More...

#include <list>
#include <map>
#include <set>
#include <vector>
#include <string>
#include <algorithm>
#include <stdlib.h>
Include dependency graph for UStl.h:

Go to the source code of this file.

Functions

template<class V >
void uAppend (std::list< V > &list, const std::list< V > &newItems)
 
int uCompareVersion (const std::string &version, int major, int minor=-1, int patch=-1)
 
template<class V >
bool uContains (const std::list< V > &list, const V &value)
 
template<class K , class V >
bool uContains (const std::map< K, V > &map, const K &key)
 
template<class K , class V >
bool uContains (const std::multimap< K, V > &map, const K &key)
 
template<class V >
int uIndexOf (const std::vector< V > &list, const V &value)
 
template<class K , class V >
void uInsert (std::map< K, V > &map, const std::map< K, V > &items)
 
template<class K , class V >
void uInsert (std::map< K, V > &map, const std::pair< K, V > &pair)
 
bool uIsDigit (const char c)
 
bool uIsInteger (const std::string &str, bool checkForSign=true)
 
bool uIsNumber (const std::string &str)
 
template<class V >
std::list< V >::const_iterator uIteratorAt (const std::list< V > &list, const unsigned int &pos)
 
template<class V >
std::set< V >::const_iterator uIteratorAt (const std::set< V > &set, const unsigned int &pos)
 
template<class V >
std::vector< V >::const_iterator uIteratorAt (const std::vector< V > &v, const unsigned int &pos)
 
template<class V >
std::list< V >::iterator uIteratorAt (std::list< V > &list, const unsigned int &pos)
 
template<class V >
std::set< V >::iterator uIteratorAt (std::set< V > &set, const unsigned int &pos)
 
template<class V >
std::vector< V >::iterator uIteratorAt (std::vector< V > &v, const unsigned int &pos)
 
std::string uJoin (const std::list< std::string > &strings, const std::string &separator="")
 
template<class K , class V >
std::vector< KuKeys (const std::map< K, V > &m)
 
template<class K , class V >
std::vector< KuKeys (const std::multimap< K, V > &mm)
 
template<class K , class V >
std::list< KuKeysList (const std::map< K, V > &m)
 
template<class K , class V >
std::list< KuKeysList (const std::multimap< K, V > &mm)
 
template<class K , class V >
std::set< KuKeysSet (const std::map< K, V > &m)
 
template<class V >
std::vector< VuListToVector (const std::list< V > &list)
 
template<class K , class V >
std::map< K, VuMultimapToMap (const std::multimap< K, V > &m)
 
template<class K , class V >
std::map< K, VuMultimapToMapUnique (const std::multimap< K, V > &m)
 
std::string uPad (const std::string &title, int padding=20)
 
std::list< std::stringuSplit (const std::string &str, char separator=' ')
 
std::list< std::stringuSplitNumChar (const std::string &str)
 
bool uStrContains (const std::string &string, const std::string &substring)
 
int uStrNumCmp (const std::string &a, const std::string &b)
 
template<class K , class V >
V uTake (std::map< K, V > &m, const K &key, const V &defaultValue=V())
 
template<class K , class V >
std::list< KuUniqueKeys (const std::multimap< K, V > &mm)
 
template<class K , class V >
V uValue (const std::map< K, V > &m, const K &key, const V &defaultValue=V())
 
template<class V >
const VuValueAt (const std::list< V > &list, const unsigned int &pos)
 
template<class V >
VuValueAt (std::list< V > &list, const unsigned int &pos)
 
template<class K , class V >
std::vector< VuValues (const std::map< K, V > &m)
 
template<class K , class V >
std::vector< VuValues (const std::multimap< K, V > &mm)
 
template<class K , class V >
std::list< VuValues (const std::multimap< K, V > &mm, const K &key)
 
template<class K , class V >
std::list< VuValuesList (const std::map< K, V > &m)
 
template<class K , class V >
std::list< VuValuesList (const std::multimap< K, V > &mm)
 
template<class V >
std::list< VuVectorToList (const std::vector< V > &v)
 

Detailed Description

Wrappers of STL for convenient functions.

All functions you will find here are here for the use of STL in a more convenient way.

Definition in file UStl.h.

Function Documentation

◆ uAppend()

template<class V >
void uAppend ( std::list< V > &  list,
const std::list< V > &  newItems 
)
inline

Append a list to another list.

Parameters
listthe list on which the other list will be appended
newItemsthe list of items to be appended

Definition at line 524 of file UStl.h.

◆ uCompareVersion()

int uCompareVersion ( const std::string version,
int  major,
int  minor = -1,
int  patch = -1 
)
inline

Definition at line 790 of file UStl.h.

◆ uContains() [1/3]

template<class V >
bool uContains ( const std::list< V > &  list,
const V value 
)
inline

Check if the list contains the specified value.

Parameters
listthe list
valuethe value
Returns
true if the value is found in the list, otherwise false

Definition at line 407 of file UStl.h.

◆ uContains() [2/3]

template<class K , class V >
bool uContains ( const std::map< K, V > &  map,
const K key 
)
inline

Check if the map contains the specified key.

Parameters
mapthe map
keythe key
Returns
true if the value is found in the map, otherwise false

Definition at line 419 of file UStl.h.

◆ uContains() [3/3]

template<class K , class V >
bool uContains ( const std::multimap< K, V > &  map,
const K key 
)
inline

Check if the multimap contains the specified key.

Parameters
mapthe map
keythe key
Returns
true if the value is found in the map, otherwise false

Definition at line 431 of file UStl.h.

◆ uIndexOf()

template<class V >
int uIndexOf ( const std::vector< V > &  list,
const V value 
)
inline

Get the index in the list of the specified value. S negative index is returned if the value is not found.

Parameters
listthe list
valuethe value
Returns
the index of the value in the list

Definition at line 537 of file UStl.h.

◆ uInsert() [1/2]

template<class K , class V >
void uInsert ( std::map< K, V > &  map,
const std::map< K, V > &  items 
)
inline

Insert items in the map. Contrary to the insert in the STL, if the key already exists, the value will be replaced by the new one.

Definition at line 455 of file UStl.h.

◆ uInsert() [2/2]

template<class K , class V >
void uInsert ( std::map< K, V > &  map,
const std::pair< K, V > &  pair 
)
inline

Insert an item in the map. Contrary to the insert in the STL, if the key already exists, the value will be replaced by the new one.

Definition at line 441 of file UStl.h.

◆ uIsDigit()

bool uIsDigit ( const char  c)
inline

Check if a character is a digit.

Parameters
cthe character
Returns
true if the character is a digit (if c >= '0' && c <= '9')

Definition at line 620 of file UStl.h.

◆ uIsInteger()

bool uIsInteger ( const std::string str,
bool  checkForSign = true 
)
inline

Check if a string is a integer number.

Parameters
strthe string
Returns
true if the string is a integer number

Definition at line 630 of file UStl.h.

◆ uIsNumber()

bool uIsNumber ( const std::string str)
inline

Check if a string is a number (integer or float).

Parameters
strthe string
Returns
true if the string is a number

Definition at line 645 of file UStl.h.

◆ uIteratorAt() [1/6]

template<class V >
std::list<V>::const_iterator uIteratorAt ( const std::list< V > &  list,
const unsigned int pos 
)
inline

Get the iterator at a specified position in a std::list. If the position is out of range, the result is the end iterator of the list.

Parameters
listthe list
posthe index position in the list
Returns
the iterator at the specified index

Definition at line 300 of file UStl.h.

◆ uIteratorAt() [2/6]

template<class V >
std::set<V>::const_iterator uIteratorAt ( const std::set< V > &  set,
const unsigned int pos 
)
inline

Get the iterator at a specified position in a std::set. If the position is out of range, the result is the end iterator of the set.

Parameters
setthe set
posthe index position in the set
Returns
the iterator at the specified index

Definition at line 336 of file UStl.h.

◆ uIteratorAt() [3/6]

template<class V >
std::vector<V>::const_iterator uIteratorAt ( const std::vector< V > &  v,
const unsigned int pos 
)
inline

Get the iterator at a specified position in a std::vector. If the position is out of range, the result is the end iterator of the vector.

Parameters
vthe vector
posthe index position in the vector
Returns
the iterator at the specified index

Definition at line 367 of file UStl.h.

◆ uIteratorAt() [4/6]

template<class V >
std::list<V>::iterator uIteratorAt ( std::list< V > &  list,
const unsigned int pos 
)
inline

Get the iterator at a specified position in a std::list. If the position is out of range, the result is the end iterator of the list.

Parameters
listthe list
posthe index position in the list
Returns
the iterator at the specified index

Definition at line 282 of file UStl.h.

◆ uIteratorAt() [5/6]

template<class V >
std::set<V>::iterator uIteratorAt ( std::set< V > &  set,
const unsigned int pos 
)
inline

Get the iterator at a specified position in a std::set. If the position is out of range, the result is the end iterator of the set.

Parameters
setthe set
posthe index position in the set
Returns
the iterator at the specified index

Definition at line 318 of file UStl.h.

◆ uIteratorAt() [6/6]

template<class V >
std::vector<V>::iterator uIteratorAt ( std::vector< V > &  v,
const unsigned int pos 
)
inline

Get the iterator at a specified position in a std::vector. If the position is out of range, the result is the end iterator of the vector.

Parameters
vthe vector
posthe index position in the vector
Returns
the iterator at the specified index

Definition at line 354 of file UStl.h.

◆ uJoin()

std::string uJoin ( const std::list< std::string > &  strings,
const std::string separator = "" 
)
inline

Join multiple strings into one string with optional separator. Example:

std::list<std::string> v;
v.push_back("Hello");
v.push_back("world!");
std::string joined = split(v, " ");

The output string is "Hello world!"

Parameters
stringsa list of strings
separatorthe separator string
Returns
the joined string

Definition at line 601 of file UStl.h.

◆ uKeys() [1/2]

template<class K , class V >
std::vector<K> uKeys ( const std::map< K, V > &  m)
inline

Get all keys from a std::map.

Parameters
mthe map
Returns
the vector of keys

Definition at line 152 of file UStl.h.

◆ uKeys() [2/2]

template<class K , class V >
std::vector<K> uKeys ( const std::multimap< K, V > &  mm)
inline

Get all keys from a std::multimap.

Parameters
mmthe multimap
Returns
the vector which contains all keys (may contains duplicated keys)

Definition at line 67 of file UStl.h.

◆ uKeysList() [1/2]

template<class K , class V >
std::list<K> uKeysList ( const std::map< K, V > &  m)
inline

Get all keys from a std::map.

Parameters
mthe map
Returns
the list of keys

Definition at line 170 of file UStl.h.

◆ uKeysList() [2/2]

template<class K , class V >
std::list<K> uKeysList ( const std::multimap< K, V > &  mm)
inline

Get all keys from a std::multimap.

Parameters
mmthe multimap
Returns
the list which contains all keys (may contains duplicated keys)

Definition at line 84 of file UStl.h.

◆ uKeysSet()

template<class K , class V >
std::set<K> uKeysSet ( const std::map< K, V > &  m)
inline

Get all keys from a std::map.

Parameters
mthe map
Returns
the set of keys

Definition at line 186 of file UStl.h.

◆ uListToVector()

template<class V >
std::vector<V> uListToVector ( const std::list< V > &  list)
inline

Convert a std::list to a std::vector.

Parameters
listthe list
Returns
the vector

Definition at line 473 of file UStl.h.

◆ uMultimapToMap()

template<class K , class V >
std::map<K, V> uMultimapToMap ( const std::multimap< K, V > &  m)
inline

Convert a std::multimap to a std::map

See also
uMultimapToMapUnique to keep only unique keys

Definition at line 494 of file UStl.h.

◆ uMultimapToMapUnique()

template<class K , class V >
std::map<K, V> uMultimapToMapUnique ( const std::multimap< K, V > &  m)
inline

Convert a std::multimap to a std::map, keeping only unique keys!

Definition at line 503 of file UStl.h.

◆ uPad()

std::string uPad ( const std::string title,
int  padding = 20 
)
inline

Definition at line 812 of file UStl.h.

◆ uSplit()

std::list<std::string> uSplit ( const std::string str,
char  separator = ' ' 
)
inline

Split a string into multiple string around the specified separator. Example:

std::list<std::string> v = split("Hello the world!", ' ');

The list v will contain {"Hello", "the", "world!"}

Parameters
strthe string
separatorthe separator character
Returns
the list of strings

Definition at line 564 of file UStl.h.

◆ uSplitNumChar()

std::list<std::string> uSplitNumChar ( const std::string str)
inline

Split a string into number and character strings. Example:

std::list<std::string> v = uSplit("Hello 03 my 65 world!");

The list v will contain {"Hello ", "03", " my ", "65", " world!"}

Parameters
strthe string
Returns
the list of strings

Definition at line 670 of file UStl.h.

◆ uStrContains()

bool uStrContains ( const std::string string,
const std::string substring 
)
inline

Check if a string contains a specified substring.

Definition at line 785 of file UStl.h.

◆ uStrNumCmp()

int uStrNumCmp ( const std::string a,
const std::string b 
)
inline

Compare two alphanumeric strings. Useful to sort filenames (human-like sorting). Example:

std::string a = "Image9.jpg";
std::string b = "Image10.jpg";
int r = uStrNumCmp(a, b); // r returns -1 (a is smaller than b). In contrast, std::strcmp(a, b) would return 1.
Parameters
athe first string
bthe second string
Returns
-1 if a<b, 0 if a=b and 1 if a>b

Definition at line 717 of file UStl.h.

◆ uTake()

template<class K , class V >
V uTake ( std::map< K, V > &  m,
const K key,
const V defaultValue = V() 
)
inline

Get the value of a specified key from a std::map. This will remove the value from the map;

Parameters
mthe map
keythe key
defaultValuethe default value used if the key is not found
Returns
the value

Definition at line 258 of file UStl.h.

◆ uUniqueKeys()

template<class K , class V >
std::list<K> uUniqueKeys ( const std::multimap< K, V > &  mm)
inline

Get unique keys from a std::multimap.

Parameters
mmthe multimap
Returns
the list which contains unique keys

Definition at line 46 of file UStl.h.

◆ uValue()

template<class K , class V >
V uValue ( const std::map< K, V > &  m,
const K key,
const V defaultValue = V() 
)
inline

Get the value of a specified key from a std::map.

Parameters
mthe map
keythe key
defaultValuethe default value used if the key is not found
Returns
the value

Definition at line 238 of file UStl.h.

◆ uValueAt() [1/2]

template<class V >
const V& uValueAt ( const std::list< V > &  list,
const unsigned int pos 
)
inline

Get the value at a specified position in a std::list. If the position is out of range, the result is undefined.

Parameters
listthe list
posthe index position in the list
Returns
the value at the specified index

Definition at line 394 of file UStl.h.

◆ uValueAt() [2/2]

template<class V >
V& uValueAt ( std::list< V > &  list,
const unsigned int pos 
)
inline

Get the value at a specified position in a std::list. If the position is out of range, the result is undefined.

Parameters
listthe list
posthe index position in the list
Returns
the value at the specified index

Definition at line 380 of file UStl.h.

◆ uValues() [1/3]

template<class K , class V >
std::vector<V> uValues ( const std::map< K, V > &  m)
inline

Get all values from a std::map.

Parameters
mthe map
Returns
the vector of values

Definition at line 202 of file UStl.h.

◆ uValues() [2/3]

template<class K , class V >
std::vector<V> uValues ( const std::multimap< K, V > &  mm)
inline

Get all values from a std::multimap.

Parameters
mmthe multimap
Returns
the vector which contains all values (contains values from duplicated keys)

Definition at line 100 of file UStl.h.

◆ uValues() [3/3]

template<class K , class V >
std::list<V> uValues ( const std::multimap< K, V > &  mm,
const K key 
)
inline

Get values for a specified key from a std::multimap.

Parameters
mmthe multimap
keythe key
Returns
the list which contains the values of the key

Definition at line 134 of file UStl.h.

◆ uValuesList() [1/2]

template<class K , class V >
std::list<V> uValuesList ( const std::map< K, V > &  m)
inline

Get all values from a std::map.

Parameters
mthe map
Returns
the list of values

Definition at line 220 of file UStl.h.

◆ uValuesList() [2/2]

template<class K , class V >
std::list<V> uValuesList ( const std::multimap< K, V > &  mm)
inline

Get all values from a std::multimap.

Parameters
mmthe multimap
Returns
the list which contains all values (contains values from duplicated keys)

Definition at line 117 of file UStl.h.

◆ uVectorToList()

template<class V >
std::list<V> uVectorToList ( const std::vector< V > &  v)
inline

Convert a std::vector to a std::list.

Parameters
vthe vector
Returns
the list

Definition at line 484 of file UStl.h.

b
Array< int, 3, 1 > b
uStrNumCmp
int uStrNumCmp(const std::string &a, const std::string &b)
Definition: UStl.h:717
a
ArrayXXi a
uSplit
std::list< std::string > uSplit(const std::string &str, char separator=' ')
Definition: UStl.h:564
v
Array< int, Dynamic, 1 > v
split
void split(const G &g, const PredecessorMap< KEY > &tree, G &Ab1, G &Ab2)


rtabmap
Author(s): Mathieu Labbe
autogenerated on Mon Jul 1 2024 02:42:43