Stavo cercando una regola empirica per allocare oggetti su stack o heap in C++. Ho trovato molte discussioni qui su SO. Molte persone hanno detto, si tratta della vita di un oggetto. Se è necessaria una durata maggiore rispetto all'ambito della funzione, inserirla nell'heap. Questo ha perfettamente senso.Come identificare se un oggetto deve essere in pila o no?
Ma ciò che mi ha reso confuso è, dicevano molte persone, allocare oggetti da impilare se sono piccoli. Se gli oggetti sono grandi, mettili in pila. Ma nessuno di loro ha detto come identificare un oggetto è grande o no?
ho le seguenti domande,
- Come identificare un oggetto è grande o no?
- Quale sarà la dimensione massima dello stack? Ogni sistema operativo avrà diverse dimensioni dello stack?
- Ho una classe wrapper che include
vector<string>
. Avrà circa 100 articoli. Farà un overflow dello stack se alloco questa classe in una pila? Ho provato questo, ma ha funzionato perfettamente. Non sono sicuro che sto facendo qualcosa di sbagliato.
... per caricare/ordinare/manipolare i dati * manualmente *. Se stai usando STL per fare il lavoro per te, non c'è bisogno di passare attraverso il problema e preoccuparsi di nuovo/cancella. Basta assegnare in pila lì. – strager
Grazie per la risposta. Hai qualche documento in cui dice che il vettore assegna i contenuti su un mucchio? –
Deve funzionare per .resize() ecc. –