我经常看到这个:
std::vector<Something> vec;
do_something_with_vec(vec);
Something *arr=&vec[0];
do_something_that_needs_carray(arr);
我的意思是,一个向量可能会在内部使用一个数组,所以我明白为什么会这样,我只是想知道这是否是定义的行为(比如,一个实现者是否允许运行 std::vector 的实现,这将休息)。
如果标准之间存在冲突,我对 C++11 标准所说的内容感兴趣。