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