据我所知,获取指向std::vector
元素的指针或引用被认为是不好的做法。但是std::vector::data()
呢?data()
获取的指针在重新分配后是否仍然有效?
据我所知,将指针或引用到std::vector元素被认为是一种糟糕的做法。
引用和指针可以避免复制开销,如果您可以确保std::vector
在引用或指针生存期内不会被重新分配,这也是一种不错的做法。
(顺便说一句,在C++中,当你可以使用引用时,不需要使用指针(
但是std::vector::data((呢?数据((获取的指针在重新分配后是否仍然有效?
否。重新定位可能会导致指针发生更改。重新分配后使用旧指针是一种未定义的行为。迭代器也是如此。