Contenitore composto per la memorizzazione dell'output da un parser

1

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?

    
posta user877329 06.01.2014 - 20:24
fonte

0 risposte

Leggi altre domande sui tag