Trie

Interfaz

Invariante de representación

Implementación

#ifndef STRING_MAP_H
#define STRING_MAP_H

template <class T>
class string_map {
	public:
		string_map();
		string_map(const string_map<T>& d);
		string_map& operator=(const string_map<T>& d);
		T& operator[](const string &key);
		int count(const string &key) const;
		T& at(const string &key);
		void erase(const strin &key);
		int size() const;
		bool empty() const;
	private:
		struct Nodo{
			vector<Nodo*> siguientes;
			T* definicion;
			Nodo() : siguientes(256, nullptr),
							 definicion(nullptr) {}
			Nodo(T* def) : siguientes(256, nullptr),
										 definicion(def) {}
		};
		Nodo* raiz;
		int size;
};

#endif //STRING_MAP_H