标准库vector类型

来源:互联网 发布:spss mac 价格 编辑:程序博客网 时间:2024/05/17 23:51

vector不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型。如 vector<int> 和 vector<string> 等等。


1、vecotr的构造函数

vector<T> v1;//保存类型为 T 的对象 v1 为空vector<T> v2(v1);//把 v2 初始化为 v1 的副本vector<T> v3(3, T);//把 v3 初始化为 3 个 T 类型值的副本vector<T> v4(5);//把 v4 初始化为 5 个类型 T 的副本

在指定T类型后,所初始化的新元素必须为T类型的对象。除此之外,对于一些无默认构造函数的T类型对象,还要提供新元素的初始值。


2、vector的size和empty操作

vector<int> vi(3, 3);if (!vi.empty())//不空则执行  cout << "false" << endl;if (vi.size() == 0)//为空则执行  cout << "true" << endl;

在指定T类型后,vector<T>::size()为容器中元素T的个数。


3、vector的size_type类型

vector<int> vi(3, 5);vector<int>::size_type size = vi.size();//正确int iSize = vi.size();//错误

注意,不要把size()的返回值付给一个int的值。我们不知道size_type为unsigned int或unsigned long,但至少不为负。


4、vector的关系操作

vector<int> vi(3, 5), vj(5, 3);if (vi == vj)//各元素相等则执行if (vi >= vj)//保持惯有含义//!=、<=、<、>

vector的关系操作类似string按字典排序。我们能更好地利用重载相应操作符来自定义特定规则。


5、vector的对象入出

vector<int> vi;vi.push_back(1);vi.push_back(2);vi.pop_back();vi.assign(3, 5);


6、vector的对象获取

vector<int> vi(5, 5);for (vector<int>::size_type i = 0; i != vi.size(); i++)cout << vi[i] << endl;//打印元素
vector能按下标获取或替换元素。

0 0