Per un programma scritto in C++, ho bisogno di due enormi matrici di stringhe che contengono dati.C++ (gcc/g ++) Due enormi matrici di stringhe impiegano molto tempo per compilare
Essi sono definiti in un file di intestazione come segue:
#include <string>
static const string strdataA[30000]={"this is the first line of the data",
"the second line of data",
"other stuff in the third line",
verso il basso per
"last line."};
//second array strings
static const string strdataB[60000]={"this is the first line of the data",
"the second line of data",
"other stuff in the third line",
verso il basso per
"last line."};
Ma quando compilo questo con g ++, ci vuole tanto lungo che non l'ho visto completo. Utilizza anche circa due GB di memoria virtuale. Così ho commentato strdataB [], e poi il programma è stato compilato, ma ancora dopo molto tempo. L'eseguibile era solo di circa 8 Mb e funzionava bene.
Cosa posso fare per accelerare la procedura di compilazione? Non mi importa se devo cambiare il codice, ma non voglio usare un file esterno da cui caricare. Mi piacerebbe un array perché funziona molto bene per me all'interno del programma.
Ho letto sulla rete da qualche parte che "stat const" dovrebbe fare il trucco, ma ho imparato per esperienza che non è così.
Grazie mille in anticipo per qualsiasi suggerimento!
Di quante linee stai parlando? Ci sono davvero 30.000 e 60.000 stringhe nella tua fonte? –
Presumo che siano in un file sorgente non in un file di intestazione. –
Ti rendi conto che il caricatore deve fare praticamente lo stesso come faresti se caricassi le stringhe da un file esterno? –