# class utils::Dictionary

## Overview

Enables mapping string keys to string words efficiently. More…

    #include <Dictionary.h>

    class Dictionary {
    public:
        // classes

        class Node;

        // construction

        Dictionary();

        // methods

        void Clear();
        bool IsAvailable(const std::string& key) const;
        void Set(const std::string& key, const std::string& word);
        std::string Get(const std::string& key, const std::string& default_word = "") const;
        bool Remove(const std::string& key);
        std::vector<std::string> GetAllWords() const;
        std::vector<std::string> GetAllWords(const std::string& key_prefix) const;
    };

## Detailed Documentation

Enables mapping string keys to string words efficiently.

### Methods

    void Clear()

Clears whole database of words and keys.

    bool IsAvailable(const std::string& key) const

Checks if there is a word available for a given key.

    void Set(const std::string& key, const std::string& word)

Creates or changes the word of a given key.

    std::string Get(const std::string& key, const std::string& default_word = "") const

Returns a word for a given key. If word for such key does not exists, returns default_word.

    bool Remove(const std::string& key)

Removes word for a given key. Results in true if an existing word was cleared.

    std::vector<std::string> GetAllWords() const

Returns all stored words.

    std::vector<std::string> GetAllWords(const std::string& key_prefix) const

Returns all stored words whose key starts with defined key_prefix.