sehe ich eine Menge:Ist & vec [0] definiertes Verhalten für einen std :: vector vec?
std::vector<Something> vec;
do_something_with_vec(vec);
Something *arr=&vec[0];
do_something_that_needs_carray(arr);
Ich meine, so ein Vektor wahrscheinlich intern ein Array verwenden, werde ich sehen, warum das funktioniert, ich frage mich nur, ob dieses Verhalten definiert ist (wie, ist ein implementor erlaubt, eine Implementierung von std :: vector zu starten, mit der dies brechen würde.
Wenn es Konflikte zwischen den Standards gibt, interessiert mich was der C++ 11 Standard sagt.
Nicht * wahrscheinlich * - ein 'Vektor' ** ** wird ** verwendet. –
"* Wenn es Konflikte zwischen den Standards gibt, interessiert mich, was der C++ 11 Standard sagt. *" C++ 98 hat nicht garantiert, dass dies funktionieren würde, aber C++ 03 und C++ 11 tun . – ildjarn