我的问题很简单: std::vector
元素是否保证是连续的?换句话说,我可以使用指向 std::vector
的第一个元素的指针作为 C 数组吗?
如果我没记错的话,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'
}
}