Description
Condiciones de entrega
La primera fecha de entrega del taller es el domingo 3 de noviembre inclusive. El taller puede luego entregarse en cualquier entrega de taller siguiente o en las fechas de checkpoint definidas en el calendario cerca del final del cuatrimestre.
La entrega es digital: enviar adjuntos los archivos string_map.h y string_map.hpp por mail a algo2.dc+taller3@gmail.com. El subject del mail debe ser: LU 123/45 (poniendo el número de libreta correspondiente).
Consigna
Se pide implementar la clase string_map que consiste en un diccionario con claves de tipo string y significados de tipo genérico, cuya interfaz será entregada por la cátedra en el archivo string_map.h adjunto. Dicha interfaz está basada en la clase map de la Standard Library de C++.
La estructura de representación interna de la clase string_map debe estar basada en la estructura Trie vista en la materia.
Interfaz de string_map<T>
1. string_map<T>::string_map() — Construye un diccionario vacio.
2. string_map<T>::string_map(const string_map<T>& aCopiar) — Construye un diccionario por copia.
3. string_map& string_map<T>::operator=(const string_map& d) — Operación de asignación.
4. string_map<T>::~string_map() — Destructor de la clase.
5. T& string_map<T>::insert(const pair<string, T>& value_type) — Definición del par clave/valor.
6. int string_map<T>::count(const string &key) const — Devuelve la cantidad de apariciones de la clave (0 o 1). Sirve para identificar si una clave está definida o no.
7. const T& string_map<T>::at(const string& key) const — Dada una clave, devuelve una referencia a su significado. Versión no modificable. Precondición: La clave está definida.
8. T& string_map<T>::at(const string& key) — Dada una clave, devuelve una referencia a su significado. Versión modificable. Precondición: La clave está definida.
9. string_map<T>::erase(const string& key) — Dada una clave, la borra del diccionario junto a su significado. Precondición: La clave está definida.
10. int string_map<T>::size() const — Devuelve cantidad de claves definidas.
11. bool string_map<T>::empty() const — Devuelve true si no hay ningún elemento en el diccionario.
12. T& string_map<T>::operator[](const string &key) — (Opcional) Acceso o definición de pares clave/valor.
La implementación que realicen no debe perder memoria. Recomendamos utilizar valgrind para testear si su implementación tiene leaks de memoria.
Para ejecutar los tests que incluyen funciones optativas, utilizar el target: correrTests_ext.
1
Reviews
There are no reviews yet.