growing a large vector iteratively
hi,
in the code below, i compare two options i) and ii). i have a feeling
we should use i) if A's size is a smaller than some threshold ii)
otherwise
1-is this correct?
2-what would that threshold be?
3-more precisely, in defining "A's size" i'm not sure if both member
functions and member variables affect the memory needed to store/copy
an object or only the member variables).
i)
vector<A> v;
while(has_not_converged()){
//some code that generates a temporary A a;
v.push_back(a); //a has to be copied//every--time v.capacity() is
reached, reallocation is necessary.
};//typically converges after up to a large, but unknown, number of
loops, such as say 100, 1000
ii)
vector<A*> v;
while(has_not_converged()){
//some code that generates A* a = new A();
vector<A*> v.push_back(a);
};//typically converges after up to a large number, but unknown number
of loops, for example 100, 1000
---
[ comp.std.c++ is moderated. To submit articles, try just posting with ]
[ your news-reader. If that fails, use mailto:std-c++@ncar.ucar.edu ]
[ --- Please see the FAQ before posting. --- ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html ]