From: Roy S. <roy...@ic...> - 2008-09-26 13:18:52
|
On Fri, 26 Sep 2008, Tim Kroeger wrote: > Parallel::max() (and other parallel functions) assume, when a vector > is supplied, that std::vector stores all its elements consecutively. > Does the STL guarantee that this is true, >From what I've read, as of 2003, it's guaranteed in the standard to be true, but even before that nobody had ever heard of a compiler doing it differently. > (I'm asking because I need to do some things like this an a context > without libMesh, and I have dealt a lot with converting a std::vector > to a C array in earlier times because I was unable to find a piece of > information that guarantees that I can safely to what you are doing.) The only big catch that you need to worry about with that conversion is vector resizing - when the STL says that an operation might invalidate an iterator, that basically translates as "might make us move the whole underlying array somewhere else in memory". --- Roy |