c++ - std::vector 指针?

标签 c++ vector

这是我正在尝试做的。我有一个 std::vector 具有一定数量的元素,它可以增长但不能缩小。问题是它是基于细胞的,所以那个位置可能没有任何东西。我没有创建一个空对象并浪费内存,而是想到了将 std::vector 中的那个单元格设为 NULL。问题是我如何在不需要管理内存的情况下获取指针?我如何利用不必执行新操作并跟踪指针的优势?

最佳答案

对象有多大,您预计 vector 会有多稀疏?如果对象不大或者没有很多空洞,拥有一些“空”对象的成本可能低于必须动态分配对象和管理指向它们的指针的成本。

就是说,如果您确实想在 vector 中存储指针,则需要使用智能指针 vector (例如 vector<shared_ptr<T>> )或设计为拥有指针的容器(例如 Boost 的 ptr_vector<T> )。 ).

关于c++ - std::vector 指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3644919/

相关文章:

c++ - 运算符重载--(前缀)

C++ 指针和内存释放

r - 向量中按组的开关数

c++ - c++ 中二维 vector 的 cout 缺失行

c++ - 如何最小化加载 vector 的时间?

c++ - foo[i] 和 foo->at(i) 与 STL vector 的区别

c++ - 什么是合约(为 C++17 提议的)?

c++ - 用 C 编写 Linux 服务器的最佳方法(phtreads、select 或 fork?)

c++ - 使用 vector::operator[] 迭代结构 vector 时如何访问结构成员

c++ - 将代码从数组移植到 vector