# KVCollection

<a id="kvcollection"></a>

# KVCollection

```cpp
#include <icy/collection.h>

template<classTKey, classTValue>
class KVCollection
```

[Defined in src/base/include/icy/collection.h:135](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L135)

A keyed value store (values stored by copy, not pointer).

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`KVCollection`](#kvcollection-1)  | Defaulted constructor. |
|  | [`~KVCollection`](#kvcollection-2)  | Defaulted destructor. |
| [`bool`](#map-3) | [`add`](#add-2) `inline` | Inserts a value; returns false if key already exists. |
| [`TValue`](#map-3) & | [`get`](#get-4) `inline` | Returns the value or throws. |
| [`const`](#map-3)[`TValue`](#map-3) & | [`get`](#get-5) `const` `inline` | Returns the value or defaultValue. |
| [`bool`](#map-3) | [`remove`](#remove-1) `inline` |  |
| [`bool`](#map-3) | [`has`](#has-1) `const` `inline` |  |
| [`bool`](#map-3) | [`empty`](#empty-1) `const` `inline` |  |
| [`size_t`](#map-3) | [`size`](#size-3) `const` `inline` |  |
| [`void`](#map-3) | [`clear`](#clear-2) `inline` |  |
| [`Map`](#map-5) & | [`map`](#map-3) `inline` |  |
| const [`Map`](#map-5) & | [`map`](#map-4) `const` `inline` |  |

---

<a id="kvcollection-1"></a>

### KVCollection

```cpp
KVCollection() = default
```

[Defined in src/base/include/icy/collection.h:140](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L140)

Defaulted constructor.

---

<a id="kvcollection-2"></a>

### ~KVCollection

```cpp
~KVCollection() = default
```

[Defined in src/base/include/icy/collection.h:141](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L141)

Defaulted destructor.

---

<a id="add-2"></a>

### add

`inline`

```cpp
inline bool add(constTKey & key, constTValue & item)
```

[Defined in src/base/include/icy/collection.h:144](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L144)

Inserts a value; returns false if key already exists.

---

<a id="get-4"></a>

### get

`inline`

```cpp
inline TValue & get(constTKey & key)
```

[Defined in src/base/include/icy/collection.h:151](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L151)

Returns the value or throws.

---

<a id="get-5"></a>

### get

`const` `inline`

```cpp
inline constTValue & get(constTKey & key, constTValue & defaultValue) const
```

[Defined in src/base/include/icy/collection.h:160](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L160)

Returns the value or defaultValue.

---

<a id="remove-1"></a>

### remove

`inline`

```cpp
inline bool remove(constTKey & key)
```

[Defined in src/base/include/icy/collection.h:166](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L166)

---

<a id="has-1"></a>

### has

`const` `inline`

```cpp
inline bool has(constTKey & key) const
```

[Defined in src/base/include/icy/collection.h:167](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L167)

---

<a id="empty-1"></a>

### empty

`const` `inline`

```cpp
inline bool empty() const
```

[Defined in src/base/include/icy/collection.h:168](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L168)

---

<a id="size-3"></a>

### size

`const` `inline`

```cpp
inline size_t size() const
```

[Defined in src/base/include/icy/collection.h:169](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L169)

---

<a id="clear-2"></a>

### clear

`inline`

```cpp
inline void clear()
```

[Defined in src/base/include/icy/collection.h:170](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L170)

---

<a id="map-3"></a>

### map

`inline`

```cpp
inline Map & map()
```

[Defined in src/base/include/icy/collection.h:171](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L171)

---

<a id="map-4"></a>

### map

`const` `inline`

```cpp
inline const Map & map() const
```

[Defined in src/base/include/icy/collection.h:172](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L172)

## Protected Attributes

| Return | Name | Description |
|--------|------|-------------|
| [`Map`](#map-5) | [`_map`](#_map-1)  |  |

---

<a id="_map-1"></a>

### _map

```cpp
Map _map
```

Type: [`Map`](#map-5)

[Defined in src/base/include/icy/collection.h:175](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L175)

## Public Types

| Name | Description |
|------|-------------|
| [`Map`](#map-5)  |  |

---

<a id="map-5"></a>

### Map

```cpp
using Map = std::map< TKey, TValue >
```

Type: std::map< [`TKey`](#map-3), [`TValue`](#map-3) >

[Defined in src/base/include/icy/collection.h:138](https://github.com/auscaster/icey/blob/main/src/base/include/icy/collection.h#L138)
