c++ - 如何实现 C++ vector 类以允许动态调整数组大小?

标签 c++ vector

如何实现 C++ vector 类以允许动态调整数组大小?

它是通过链表类型实现的吗? 每次添加或删除元素时是否从头开始创建新数组?

谢谢, R

最佳答案

典型行为:在内部,std::vector 有一个长度为capacity 的连续数组。在任何给定点,实际上只使用了 size 元素。如果在任何时候 size 会超过 capacity(假设您经常调用 push_back()),则会分配一个新的、更大的内部数组(例如,容量 可能会翻倍)。然后将旧数组中的所有元素复制到新数组中,并删除旧元素和数组。

关于c++ - 如何实现 C++ vector 类以允许动态调整数组大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4240879/

相关文章:

c++ - 为什么我们实际上需要 C++ 中的 Private 或 Protected 继承?

c++ - 使用后释放 vector 的 vector

c++ - 创建一个新的 C++ 子 vector ?

c++ - 交换两个完整的 vector/队列/堆栈时间成本?

c++ - 为什么 VS 编译器会在对象内存中插入一个 NULL

c++ - 用于匹配和计数的字符串和 int 的容器?

c++ - 带有 fadbad 的特征向量

c++ - 访问 std::string 字符的段错误

C++ STL Vector 相当于 Rust 中的 set_len()

c++ - 这是在 vector 中查找元素位置的合法方法吗?