引用reference作为函数返回
1.引用不需额外内存,比指针高效。
2.vector既是容器也是向量,同时也是一种特殊的数组。它允许存储多种类型的对象。
3.vector的名称虽然翻译为“向量”,但实际上它更像是一个动态数组,能够根据需要动态地增加或减少大小。与静态数组不同,vector的大小可以在运行时改变,而不需要预先定义大小。此外,vector提供了丰富的接口来操作其元素,如添加、删除、查询等,这些操作通常具有较高的效率。
4.vector的元素在内存中连续排列,这意味着可以通过指针直接访问其元素,这与普通数组相似。
5.因为“向量”在数学和物理学中通常指的是一种具有大小和方向的量,而STL中的vector更侧重于其作为数据结构的用途。
6.(vector翻译是向量,但是表示的是顺序表)
vector是表示可以改变大小的数组的序列容器。
7.库可以实施不同的增长策略来平衡内存使用和重新分配,但无论如何,重新分配应该只发生在对数增长的大小间隔上,以便可以为vector末尾的单个元素插入提供摊销常数时间复杂性(参见push_back)。
因此,与数组相比,vector消耗更多内存以换取管理存储和以有效方式动态增长的能力。
与其他动态序列容器(deques、list和forward_lists)相比,vector 访问其元素(就像数组一样)非常有效,并且从其末尾添加或删除元素也相对有效。对于涉及在结尾以外的位置插入或删除元素的操作,它们的性能比其他操作更差,并且迭代器和引用的一致性不如列表和forward_lists。