La norme C++03 a ajouté des termes pour clarifier que les éléments de vector doivent être contigus.
Le paragraphe 1 de C++03 23.2.4 contient le langage suivant qui ne se trouve pas dans le document de la norme C++98 :
Les éléments d'un vector
sont stockés de manière contiguë, ce qui signifie que si v
est un vector
où T
est un type autre que bool
, alors il satisfait l'identité &v[n] == &v[0] + n
pour tous les 0 <= n < v.size()
.
Herb Sutter parle de ce changement dans l'une de ses entrées de blog, Ne crains rien : Les vecteurs sont garantis d'être contigus:
... la contiguïté fait en fait partie de l'abstraction du vector. C'est tellement important, en fait, que lorsqu'il a été découvert que la norme C++98 ne garantissait pas complètement la contiguïté, la norme C++03 a été modifiée pour ajouter explicitement la garantie.