标准库vector类型

来源:互联网 发布:数组冒泡排序php 编辑:程序博客网 时间:2024/06/09 15:54

1.     vector是一个模版类  (class template) 不是一种数据类型,它是连续的内存区域,随机访问(下标),向中间插入效率很低,都要移动数据。

2.     vector 如果保存的类型本身没有默认构造函数则调用,( 编写程序是 不需要再构造函数里初始化)。

3.     vector对象的动态增长,在运行时高效的添加元素,这种增长不同于c语言的内置数据类型

4.     const 迭代器 和  const_iterator区别

                const_iterator 可以用于 const vector 或者非const vector不能改写元素值。vector里面的值是不可以改变的  原来指向的元素*iter = a ;改成*iter = b;//error

                const 迭代器 只能改写其指向的元素不能指向其他的元素 可以改变值 但是不可以改变指向。const vector<int>::iterator 。。一般来说这样的迭代器是没用的

5.    vector<int>::iterator mid = vi.begin() + vi.size()/2;

                直接定位vi的最靠近正中间的位置

6.     用下标访问的时候要小心访问不存在的元素。可能会导致程序的崩溃。

7.     vi.end() 返回一个不存在的元素,表示最后一个元素的下一个。

8.     迭代器的算术操作

9.     vector是一个顺序容器。元素是以连续的方式存储放,每个元素都紧挨着前一个元素,但是当我们添加一个新的元素时,不能在空间随便的找个空间存储,所以就要从新分配,性能很慢。而对于list容器因为不是顺序存储的就不存在这个问题,但是其访问的速度弥补了这个特性。他可以通过位置访问。

10.   vector支持 = 赋值操作。

          v1.swap(v2) 交换v1 和 v2 的内容,

          v1.assisgn(b,e)重新设置元素

11.  vector 中的成员函数 1. v.reserve(50) (预留空间的大小,更改的是capactity的值)2. v.size()(表示容器实际的大小)3.v.capacity(容量,总是比size的大一些)

12.  vector的函数

assign

清除向量并复制指定的元素设置为空的矢量。

at

返回对该元素在命名个矢量的指定位置。

back

返回对这个矢量的最后一个元素。

begin

返回一个随机访问迭代器到个矢量的第一个元素。

capacity

返回一个矢量可以包含,而无需分配更多存储元素的数目。

cbegin

返回一个随机访问迭代器的常量到个矢量的第一个元素。

cend

这将返回向量之外的末尾点的一个随机访问迭代器的常量。

crbegin

返回 const 迭代器到一个反转的向量的第一个元素。

crend

返回 const 迭代器到一个反转的矢量的末尾。

clear

清除这个矢量的元素。

data

返回指向该矢量的第一个元素。

放置

插入元素构造就地到矢量中的指定位置。

emplace_back

添加构造一个元素就地到个矢量的末尾。

empty

,如果向量容器为空,测试。

end

返回指向一个矢量的末尾的一个随机访问迭代器。

erase

从指定的位置移除元素或元素的大小矢量的。

front

返回对矢量的第一个元素。

get_allocator

返回到向量使用的 allocator 类的对象。

insert

插入元素或多个元素到矢量中的指定位置。

max_size

返回一个矢量的最大长度。

pop_back

删除组件在这个矢量的末尾。

push_back

将元素添加到个矢量的末尾。

rbegin

返回迭代器到一个反转的向量的第一个元素。

rend

返回迭代器到一个反转的矢量的末尾。

reserve

保留存储的最小长度向量对象的。

resize

为向量指定一个新范围。

shrink_to_fit

放弃多余的能力。

size

返回元素数。这个矢量的。

swap

交换两个矢量的元素。

 

原创粉丝点击