Loading...
Searching...
No Matches
uhd::dict< Key, Val > Class Template Reference

`#include <uhd/types/dict.hpp>`

## Public Member Functions

| dict (void)
template<typename InputIterator>
| dict (InputIterator first, InputIterator last)
std::size_t | size (void) const
std::vector< Key > | keys (void) const
std::vector< Val > | vals (void) const
bool | has_key (const Key &key) const
const Val & | get (const Key &key, const Val &other) const
const Val & | get (const Key &key) const
void | set (const Key &key, const Val &val)
const Val & | operator[] (const Key &key) const
Val & | operator[] (const Key &key)
bool | operator== (const dict< Key, Val > &other) const
bool | operator!= (const dict< Key, Val > &other) const
Val | pop (const Key &key)
void | update (const dict< Key, Val > &new_dict, bool fail_on_conflict=true)

## Detailed Description

template<typename Key, typename Val>
class uhd::dict< Key, Val >

A templated dictionary class with a python-like interface.

## Constructor & Destructor Documentation

## dict() [1/2]

template<typename Key, typename Val>

uhd::dict< Key, Val >::dict | ( | void |  | ) |

Create a new empty dictionary.

## dict() [2/2]

template<typename Key, typename Val>
template<typename InputIterator>

uhd::dict< Key, Val >::dict | ( | InputIterator | first,
|  | InputIterator | last )

Input iterator constructor: Makes boost::assign::map_list_of work.

Parameters

  first | the begin iterator
  last | the end iterator

## Member Function Documentation

## get() [1/2]

template<typename Key, typename Val>

const Val & uhd::dict< Key, Val >::get | ( | const Key & | key | ) | const

Get a value in the dict or throw.

Parameters

  key | the key to look for

Returns
  the value or default

## get() [2/2]

template<typename Key, typename Val>

const Val & uhd::dict< Key, Val >::get | ( | const Key & | key,
|  | const Val & | other ) const

Get a value in the dict or default.

Parameters

  key | the key to look for
  other | use if key not found

Returns
  the value or default

## has_key()

template<typename Key, typename Val>

bool uhd::dict< Key, Val >::has_key | ( | const Key & | key | ) | const

Does the dictionary contain this key?

Parameters

  key | the key to look for

Returns
  true if found

## keys()

template<typename Key, typename Val>

std::vector< Key > uhd::dict< Key, Val >::keys | ( | void |  | ) | const

Get a list of the keys in this dict. Key order depends on insertion precedence.

Returns
  vector of keys

## operator!=()

template<typename Key, typename Val>

bool uhd::dict< Key, Val >::operator!= | ( | const dict< Key, Val > & | other | ) | const

Not equal operator for the dict type

Parameters

  other | the dict being compared to this

Returns
  whether or not the two dict's are not equal

## operator==()

template<typename Key, typename Val>

bool uhd::dict< Key, Val >::operator== | ( | const dict< Key, Val > & | other | ) | const

Equals operator for the dict type

Parameters

  other | the dict being compared to this

Returns
  whether or not the two dict's are equal

## operator[]() [1/2]

template<typename Key, typename Val>

Val & uhd::dict< Key, Val >::operator[] | ( | const Key & | key | ) |

Set a value for the given key, however, in reality it really returns a reference which can be assigned to.

Parameters

  key | the key to set to

Returns
  a reference to the value

## operator[]() [2/2]

template<typename Key, typename Val>

const Val & uhd::dict< Key, Val >::operator[] | ( | const Key & | key | ) | const

Get a value for the given key if it exists. If the key is not found throw an error.

Parameters

  key | the key to look for

Returns
  the value at the key

Exceptions

  an | exception when not found

## pop()

template<typename Key, typename Val>

Val uhd::dict< Key, Val >::pop | ( | const Key & | key | ) |

Pop an item out of the dictionary.

Parameters

  key | the item key

Returns
  the value of the item

Exceptions

  an | exception when not found

## set()

template<typename Key, typename Val>

void uhd::dict< Key, Val >::set | ( | const Key & | key,
|  | const Val & | val )

Set a value in the dict at the key.

Parameters

  key | the key to set at
  val | the value to set

## size()

template<typename Key, typename Val>

std::size_t uhd::dict< Key, Val >::size | ( | void |  | ) | const

Get the number of elements in this dict.

Returns
  the number of elements

## update()

template<typename Key, typename Val>

void uhd::dict< Key, Val >::update | ( | const dict< Key, Val > & | new_dict,
|  | bool | fail_on_conflict = true )

Update this dictionary with values from another.

Basically, this copies all the key/value pairs from `new_dict` into this dict. When the key is already present in the current dict, it either overwrites the current value (if `fail_on_conflict` is false) or it throws (if `fail_on_conflict` is true and the values differ).

With the exception of `fail_on_conflict`, this behaves analogously to Python's dict.update() method.

Parameters

  new_dict | The arguments to copy.
  fail_on_conflict | If true, throws.

Exceptions

  uhd::value_error |

## vals()

template<typename Key, typename Val>

std::vector< Val > uhd::dict< Key, Val >::vals | ( | void |  | ) | const

Get a list of the values in this dict. Value order depends on insertion precedence.

Returns
  vector of values

The documentation for this class was generated from the following files:

- dict.hpp
- dict.ipp