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



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

据我所知,将指针或引用到std::vector元素被认为是一种糟糕的做法。

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

(顺便说一句,在C++中,当你可以使用引用时,不需要使用指针(

但是std::vector::data((呢?数据((获取的指针在重新分配后是否仍然有效?

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

最新更新