vector
vector叫动态数组,是一种存放变量的容器(它的每一个元素都是一个变量,且每个元素的类型也一样)。
一开始vector被创建出来的时候,它是没有元素的。
1【创建数组】
使用数组需要包含头文件
#include <vector>
using namespace std;
定义一个可以存放整型变量的数组:
vector<int> arr;//这里是注释(1)
上面的代码就创建了一个可以用来存放整型变量的数组,这个数组目前没有任何元素。
2【元素数量】
在上面的代码(1)那里创建的数组一开始由于没有任何元素,所以,此时数组的大小是0。
size_t c = arr.size();//此时变量c的值为0
上面的size是数组vector的成员函数,专门用来告诉使用数组的人现在数组元素有几个。
其返回类型为size_t,实际上是unsigned long long类型。
为了书写方便,C++ 提供了 size_t 类型来表示容器元素数量的类型。
由于函数调用总是用一对圆括号表示,所以调用size应该写成size()
由于是数组arr调用自己的成员函数,所以用成员访问操作符点来调用,所以写成
arr.size()
由于要把元素数组的数量这个数值赋值给一个整型变量c,所以写成
size_t c = arr.size()
由于一句话末尾总是要用分号作为结束,所以写成
size_t c= arr.size();
3【判断数组为空】
同样的,由于数组目前没有任何元素,所以数组是空的。判断数组是否为空的成员函数是empty(),此函数返回一个bool值。
bool b = arr.empty();
上面的b其值为true。
4【添加元素】
添加元素就是往数组容器中添加一个整型变量。下面的代码调用 push_back成员函数往容器中添加一个无名整型变量,并将这个变量的初始值设置为25
arr.push_back(25);//arr的末尾新增了一个元素25
这个被添加进来的变量没有自己的名字。怎么访问这个变量呢?
数组会一视同仁的对待它存放的每一个整型变量,虽然它们都没有名字。
一视同仁的访问每一个变量的办法就是给每个元素一个号。以数字0开始的号码。用号码来访问每一个元素。
5【访问元素】
只有先把元素添加进去,才可以访问
arr.push_back(123);//先添加一个元素
int i = arr[0];//将下标位置(号)为0的元素(变量)的值赋值给整型变量i
上面代码中,arr[0]表示访问数组的第一个元素(因为数组元素的下标是从0开始的)。
6【动态扩容】
数组的长度会随着添加元素而变长,所以叫动态数组
7【下标遍历】
遍历是指从头到尾挨个访问数组的每一个元素。访问每一个元素的目的可能是为了读取这个元素的值用来输出或者赋值,或者统计等等。也可能是为了写入新值到这些元素里。
下面的遍历代码是为了输出每个元素的值到屏幕上:
使用下标遍历
for(int i = 0; i < arr.size(); ++i)
{
cout<<arr[i]<<endl;//使用下标访问元素
}
8【完整示例】
下面的示例先用循环往数组里放元素,再用循环将元素的值打印出来。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> a;
for (size_t i = 0; i < 10; ++i)
{
a.push_back(i);
}
cout << "vector size:" << a.size() << endl;
for (size_t i = 0; i < a.size(); ++i)
{
cout << a[i] << " ";
}
cout << endl;
return 0;
}
输出:
更多vector的内容参考:cplusplus官网vector