C ++中的数组和向量有什么区别?差异的一个例子可能包括图书馆、象征、能力等。
大批
数组包含特定类型的特定数量的元素。为了使编译器在编译程序时可以保留所需的空间量,您必须指定数组在定义时将包含的元素的类型和数量。编译器必须能够在编译程序时确定该值。一旦定义了数组,就可以使用数组的标识符和索引来访问数组的特定元素。[...] 数组是零索引的;也就是说,第一个元素在索引 0 处。这种索引方案表明 C++ 中指针和数组之间的密切关系以及语言为指针算术定义的规则。
— C++ 袖珍参考
向量
向量是动态大小的对象序列,提供数组样式的
operator[]
随机访问。成员函数push_back
通过复制构造函数复制其参数,将该副本添加为向量中的最后一项,并将其大小增加一。pop_back
通过删除最后一个元素来做完全相反的事情。从向量末尾插入或删除项目需要摊销常数时间,从任何其他位置插入或删除需要线性时间。这些是向量的基础知识。他们还有很多。在大多数情况下,向量应该是 C 样式数组的首选。首先,它们是动态大小的,这意味着它们可以根据需要增长。您不必像 C 数组那样进行各种研究来确定最佳静态大小;矢量会根据需要增长,如果需要,可以手动将其大小调整为更大或更小。其次,向量提供使用at
成员函数的边界检查(但不使用operator[]
),这样您就可以在引用不存在的索引时做一些事情,而不是简单地看着程序崩溃或更糟糕的是,继续使用损坏的数据执行。— C++ 食谱