Considera una struttura gerarchica come questa
directory
[
[item_0;item_1;...;item_n]
[item_0;item_1;inner_directory[...];item_m]
other_directory
[...]
]
Una directory contiene
- Un array di stringhe (delimitato da ';' nei dati di input)
- Una mappa dal nome alle sottodirectory (il nome della directory è seguito da "[')
- Un array di sottodirectory senza nome
La directory può essere descritta da questa classe:
class Directory
{
public:
//Appropriate operations
private:
std::vector<std::string> items;
std::map<std::string, Directory> named_dirs;
std::vector<Directory> unnamed_dirs;
};
Tuttavia:
- La classe Directory richiede tre serie di operazioni, risultando in una definizione di classe estesa
- Un'operazione di copia sarà ricorsiva
I dati possono essere archiviati in modo migliore evitando almeno il primo punto?