vector是将元素放到动态数组中加以管理的容器,vector容器可以随机存取元素,也就是说支持·[]运算符和at方式存取。
所以vector分配的是一块连续的内存的空间。当没有连续的内存空间去插入新来的元素时,则重新分配一块更大的内存空间。将原内存空间中的数据拷贝到新的内存空间
vector在尾部添加或者删除元素非常快,在中间操作非常耗时,因为他需要移动元素。
基本用法
front() 返回头部元素的引用,可以当左值
back() 返回尾部元素的引用,可以当左值
push_back() 添加元素,只能尾部添加
pop_back() 删除元素,只能在尾部删除
//用法代码
vector初始化共四个构造函数
1.直接构造函数初始化
vector<int> v1;
2.拷贝构造函数初始化
vector<int> v2=v1;
3.使用部分元素初始化
vector<int> ::iterator iter1=v.begin();
vector<int> ::iterator iter2=v.end();
vector<int> v(iter1,iter2);
4.使用元素书和值初始化
vector<int> v(3,5);//三个元素,初始化为5
vector遍历方式,可以根据[]或者迭代器遍历
[]方式
at()方式
迭代器方式
vector的元素删除
erase(iterator) 删除后会返回当前迭代器的下一个位置。
vector的元素添加
int main(int argc, const char * argv[]) {
//初始化vector对象
vector<int> v1(10);
//在指定的位置插入元素10的拷贝
v1.insert(v1.begin() + 3, 10);
//在指定的位置插入3个元素11的拷贝
v1.insert(v1.begin(), 3, 11);
//遍历
for (vector<int>::iterator it = v1.begin(); it != v1.end(); it++) {
cout << *it << " ";
}
cout << endl;
return 0;
}
网友评论