Мне любопытно, является ли это законным:
std::vector<some_class_type> vec;
vec.reserve(10);
some_class_type* ptr = vec.data() + 3; // that object doesn't exist yet
Обратите внимание, что я не пытаюсь получить доступ к указанному значению.
Это то, что стандарт говорит о data()
, но я не уверен, что это важно:
Возвращает: Указатель такой, что
[data(),data() + size())
является действительным ассортимент. Для непустого вектораdata() == &front()
.