On Sun, 2005-06-05 at 23:53, Dave Robillard
wrote:
On Sun, 2005-05-06 at 05:14 -0500, Jan Depner
wrote:
On Sun, 2005-06-05 at 08:08, fons adriaensen
wrote:
> My aproach to C++ is very simple: I use it as 'C with classes'. No streams,
no
> STL, no other nonsense. Gives me the best of both worlds - clean objects and
> low level.
Good answer. I've often wondered why anyone would use vectors.
Because they dynamically resize, easily, and are generally much simpler
to work with, perhaps? :)
C arrays dynamically resize easily (with realloc), are just as
simple to work with, and they're way faster. I'll take efficiency over
ease of use in most cases.
- No (optional) bounds checking
- Not even remotely as simple to work with for many things (ie
vector.push_back(foo), the various inserting & removing functions ...
Vectors are really much, much more convenient.
- "Way faster" is a bit vague. vector[2] and array[2] will perform the
exact same operation, assuming you have optimization on
"Premature optimization is the root of all evil". Using C arrays and
strings for no reason when a much more robust higher level type would
suffice is /just as stupid/ as always using slow high-level operations
in time critical code.
It's like arguing about, say, assembly vs. perl. Anyone who says one
side is (always) "better" is automatically wrong. :)