何时使用矢量而不是数组
when to use a vector instead of an array?
我真的不明白什么时候需要使用向量。有人能给我一个例子,说明你什么时候应该使用向量而不是数组,谢谢。
主要优点是动态内存分配。向量从有限的大小开始,当需要更多空间时,其大小会加倍。平均插入复杂度仍然是O(1),这是这里的主要增益。不过,它仍然比数组慢一点。
除此之外,你对向量所做的一切都可以用数组来完成。然而,向量更容易使用,因为它们可以有迭代器、奇特的构造函数和函数。
数组是固定大小的。当您分配一个数组时,它包含n个元素。如果需要添加第(n+1)个元素,则必须分配一个新数组,复制所有旧元素,然后添加第(n+1)个元素。使用矢量,这一切都会为你解决。向量将数组作为存储,并跟踪存在的元素数量。如果支持向量的数组空间不足,向量必须分配一个新的更大的数组,复制旧元素,然后添加一个元素。但这已经为您实现了,您不必每次需要增长的数组时都重新实现它。
在创建更复杂的数据结构时,抽象也有优势。向量是一个类,而数组不是。
相关文章:
- std::vector的包装器,使数组的结构看起来像结构的数组
- 指针的 C++ 动态数组 - 何时需要使用它?
- 为什么必须动态分配扩展数组才能使此功能正常工作C++
- 在std::数组内部使用时,无法从std::函数构造类
- 如何添加 char 数组(并使它们变为整数)
- 指针到数组何时可以转换为不同类型的指针到数组?
- 将模板气泡排序与结构数组一起使用时出现问题
- 数组何时转换为指针
- 在数组上使用时最大堆无限循环,但不用于向量
- 将glUniformMatrix与数组组合使用时出现分割错误
- 将指针与动态数组一起使用时出现问题
- 为什么 sizeof 运算符在传递给方法的数组上使用时返回错误的值
- 我如何知道IMAGE_THUNK_DATA数组何时终止
- std::函数在堆栈上的数组中使用时崩溃
- 从结构访问数组会使程序崩溃
- 在数组中使用时,"."和"->"有什么区别?
- 在c语言中,数组何时充当指针?
- 更改数组,使数组中的最大元素必须是最小元素
- 为什么大型本地数组会使我的程序崩溃,而全局数组不会?
- 从头文件访问数组会使程序崩溃