C++ std::vector::data()重新分配安全吗?

C++ std::vector::data()重新分配安全吗?,c++,pointers,stdvector,C++,Pointers,Stdvector,据我所知,使用指针或引用std::vector元素被认为是不好的做法。但是关于std::vector::data()呢?data()获取的指针在重新分配后是否仍然有效 据我所知,使用std::vector元素的指针或引用被认为是不好的做法 引用和指针可以避免复制开销,如果可以确保在引用或指针生命周期内不会重新分配std::vector,这是一种不错的做法 (BTW,C++中,不需要在使用引用时使用指针)< /P> 但是std::vector::data()呢?data()所使用的指针在重新分配后

据我所知,使用指针或引用
std::vector
元素被认为是不好的做法。但是关于std::vector::data()呢?
data()
获取的指针在重新分配后是否仍然有效

据我所知,使用std::vector元素的指针或引用被认为是不好的做法

引用和指针可以避免复制开销,如果可以确保在引用或指针生命周期内不会重新分配
std::vector
,这是一种不错的做法

(BTW,C++中,不需要在使用引用时使用指针)< /P> 但是std::vector::data()呢?data()所使用的指针在重新分配后是否仍然有效


否。重新分配可能会导致指针更改。在重新分配后使用旧指针是一种未定义的行为。迭代器也是如此。

否重新分配后,它将不保持有效。否。所有指针和迭代器在重新分配时无效。完全同意。它不是使用应该禁止使用的指针或引用,而是存储(特别是在对象成员等非局部变量中)指向向量元素的指针或引用。