Re: help with vector<vector<double>>
On Aug 9, 7:52 pm, "T. Crane" <trevis.cr...@gmail.com> wrote:
I'm struggling with how to initialize a vector<vector<double>>
object. I'm pulling data out of a file and storing it in the
vector<vector<double>> object. Because any given file will have a
large amount of data, that I read off using an ifstream object, I
don't want to use the push_back method because this grows the
vector<vector<double>> dynamically, and that will kill my execution
time. So, I want to reserve space first, using, of course the reserve
method. However, I'm not sure what the best way of doing this is.
Here's what I am thinking of doing (I don't even know if this will
work) but if there's a better way to do it, I'm all ears:
#include <vector>
int nColumns = 10;
int nRows = 15;
vector<vector<double>> myData;
myData.reserve(nRows);
for (int i;i<nRows;i++){
myData[i].reserve(nColumns);
}
Is there some reason you don't write just:
std::vector< std::vector< double > >
myData( nRows,
std::vector< double >( nColumns ) ) ;
This will actually initialize all of the data with 0.0, which
you might not need, but it avoids the need of push_back
entirely.
--
James Kanze (GABI Software) email:james.ka...@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34