序列式容器------vector类模板

1、vector是定义于名称空间(namespace)std内的模板,其定义在头文件<vector>中。

  vector中的元素可以是任意类型T,必须具备可设置、可复制两个属性。模板法第二个参数是关于空间配置器设置的,用于定义内存模型,默认内存模型是C++标准库提供的allocator。

2、vector类对象的初始化

  

vector<T>  v1; vector保存类型为T的对象。默认构造函数v1为空。
vector<T> v2(v1); v2是v1的一个副本。
vector<T> v3(n, i); v3包含n个值为i的元素。
vector<T> v4(n); v4含有值初始化的元素的n个副本。

  函数push_back()将对象放入容器中,也可以用函数pop_back()将对象弹出。

  vector的对象可以使用reserve()函数预先设置容器的大小,如果没有设置容器的大小,是不允许直接给容器中的元素赋值的。

3、容器的大小和容量

  vector类模板定义了两个函数(size 和 capacity),实现统计容器元素的目的;还定义了两个函数(resize和reserve),实现设置容器大小的目的。

  函数size()和capacity()可以统计容器中元素的数量。size()函数返回容器中现有的元素数量;capacity()函数返回容器中实际能够容纳的元素的数量。函数max_size()可以返回容器所能容纳的最大元素数量。一般情况下,元素数量超越capacity()返回的数值时,vector有必要重新配置内部存储器。

  函数reserve()可以预先设置容器的大小;函数resize()可以修改容器的大小。函数reserve()可以保留适当的容量,避免重新配置内存。当然,在定义容器对象时,通过传递函数的形式,也可以设置vector的起始大小。

4、vector类的成员函数

  (1)判断向量是否为空

    向量模板vector<T>提供了一个函数:empty()。此函数可以判断向量容器中元素是否为0,如果向量为空,函数返回真;如果向量不为空,函数返回非真。

template<class _TYPE, class _A>bool vector::empty()const;

 

posted @ 2017-10-03 10:02  陈辻柒  阅读(338)  评论(1编辑  收藏  举报