向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。
vector可以随机存取元素,支持索引值直接存取, 用[]操作符或at()方法对元素进行操作
元素个数和容器的大小不一定是一致的,有时候会预先分配内存。
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
void demo1()
{
//vector 对象的构造
vector<int> v1;
vector<float>v2;
cout << "v1的元素个数:" << v1.size() << endl;
cout << "v1 的容器大小" << v1.capacity() << endl;
v1.push_back(1);
cout << "尾部插入1个元素后:" << endl;
cout << "v1 的元素个数 : " << v1.size() << endl;
cout << "v1 的容器大小" << v1.capacity() << endl;
v1.push_back(2);
v1.push_back(3);
v1.push_back(4);
v1.push_back(5);
cout << "尾部插入5个元素后:" << endl;
cout << "v1 的元素个数 : " << v1.size() << endl;
cout << "v1 的容器大小" << v1.capacity() << endl;
}
void main()
{
demo1();
system("pause");
}
从运行结果可以看出来,在容器尾部插入了5个元素后,容器的大小并不是预想的5个,而是有预先分配的内存。
vector构造函数的一些用法:
注意当使用vector容器的默认构造函数时候,不能直接通过下标去访问
#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
void demo1()
{
//vector 对象的构造
vector<int> v1;
vector<float>v2;
cout << "v1的元素个数:" << v1.size() << endl;
cout << "v1 的容器大小" << v1.capacity() << endl;
//当使用vector的默认构造函数时候,不能直接通过下标去访问,编译器不会马上报错,但会出错
v1[0] = 1;
v1.push_back(1);
cout << "尾部插入1个元素后:" << endl;
cout << "v1 的元素个数 : " << v1.size() << endl;
cout << "v1 的容器大小" << v1.capacity() << endl;
v1.push_back(2);
v1.push_back(3);
v1.push_back(4);
v1.push_back(5);
cout << "尾部插入5个元素后:" << endl;
cout << "v1 的元素个数 : " << v1.size() << endl;
cout << "v1 的容器大小" << v1.capacity() << endl;
}
void main()
{
demo1();
system("pause");
}