Мой вопрос прост: std::vector элементы гарантированно смежны? В качестве слова, могу ли я использовать указатель на первый элемент std::vector как C-массив?
Если моя память мне хорошо помогает, стандарт С++ не дает такой гарантии. Однако требования std::vector были такими, что их было практически невозможно встретить, если элементы не были смежными.
Может ли кто-нибудь прояснить это?
Пример:
std::vector<int> values;
// ... fill up values
if( !values.empty() )
{
int *array = &values[0];
for( int i = 0; i < values.size(); ++i )
{
int v = array[i];
// do something with 'v'
}
}