Esiste un contenitore "standard" (STL, boost) che può presentare più blocchi di memoria come uno continuo singolo? Ho bisogno di lavorare con alcuni dati con seguenti condizioni:Contenitore per presentare più blocchi di memoria come singolo continuo
- dimensione totale dei dati non è noto in anticipo (risposta web)
- memoria è allocata in blocchi (con qualche funzione di allocazione esterna, che non ho controllo di)
- liberazione di memoria non è controllata da me, così riassegnazioni sono relativamente costosi
così, dopo aver ottenuto tutti i dati, ho una lista di blocchi di memoria. E ho bisogno di applicare alcuni algoritmi STL (ricerca, copia, ecc.) Ai dati nel loro complesso. C'è una soluzione per scrivere container per contenere informazioni su questi chunks + forward iterator che è in grado di "saltare" da un blocco a un altro.
Ma il problema sembra piuttosto generale, quindi spero che ci sia una risposta ben nota che mi manca. Grazie in anticipo.
Sono assolutamente d'accordo che ho bisogno di un iteratore e l'ho menzionato come una possibile soluzione. Ma usare un iteratore senza un contenitore mi sembra strano. Perché dovrei ottenere il mio 'begin()' e 'end()' in qualche modo, quindi incapsulare questa roba in un contenitore sembra naturale. Forse la parola _container_ è abusata qui da me.Non sto parlando del concetto di contenitori STL, ma di qualche "supporto" per frammenti separati che li incapsulerebbe. Speravo solo di non dover implementare questa roba da solo. Comunque, grazie per una risposta. –
"_Container_" è ben definito in C++ (è il capitolo 23 dello standard). – MSalters