widzę to dużo:Czy & vec [0] zdefiniowane zachowanie dla std :: vector vec?
std::vector<Something> vec;
do_something_with_vec(vec);
Something *arr=&vec[0];
do_something_that_needs_carray(arr);
To znaczy, wektor będzie prawdopodobnie używać tablicy wewnętrznie tak widzę, dlaczego to działa, Zastanawiam się, czy nie jest to określone zachowanie (jak, to implementor może uruchomić implementację std :: vector, z którą to by się zepsuło).
Jeśli między standardami występują sprzeczności, interesuje mnie to, co mówi standard C++ 11.
Nie * prawdopodobnie * - "wektor" ** będzie ** używał zaciekłej pamięci. –
"* Jeśli między standardami są konflikty, interesuje mnie to, co mówi standard C++ 11." "C++ 98 nie gwarantowało, że to zadziała, ale C++ 03 i C++ 11 . – ildjarn