C++ vector用法
一、什么是vector
vector是一个封装了动态大小数组的顺序容器,它能够存放各种类型的对象。
二、基本函数实现
- 构造函数
- vector()创建一个空vector
- vector(int nsize)创建一个vector元素个数为nsize。
- vector(int nsize, const t& t)创建一个vector,元素个数为nsize,且值为t。
- vector(const vector&)复制构造函数
- vector(begin, end)复制[begin,end]区间内到另一个数组的元素到vector中
- 增加函数
- void push_back(const T& x):向尾部增加一个元素X
- iterator insert(iterator it, const T& x)向指定元素前增加一个元素。
- iterator insert(iterator it, int n, const T& x)项指定元素前增加n个相同的元素x
- iterator insert(iterator it,const_iterator first,const_iterator last):向量中迭代器指向元素前插入另一个相同类型向量的[first,last)间的数据
- 删除函数
- iterator erase(iterator it)删除指定元素
- iterator erase(iterator first, iterator last)删除(first, last)中元素
- void pop_back()删除最后一个元素
- void clear()清空所有元素
- 遍历函数
- reference at(int pos):返回pos位置元素的引用
- reference front():返回首元素的引用
- reference back():返回尾元素的引用
- iterator begin():返回向量头指针,指向第一个元素
- iterator end():返回向量尾指针,指向向量最后一个元素的下一个位置
- reverse_iterator rbegin():反向迭代器,指向最后一个元素
- reverse_iterator rend():反向迭代器,指向第一个元素之前的位置
- 判断函数
- bool empty() const:判断向量是否为空,若为空,则向量中无元素
- 大小函数
- int size() const:返回向量中元素的个数
- int capacity() const:返回当前向量所能容纳的最大元素值
- int max_size() const:返回最大可允许的vector元素数量值
- 数组指针
- T* data():返回数组的首地址
vector大部分成员函数的使用都比较简单,这里介绍一下T* data()的使用,可以用来拼接数组。
::vector<char> v;
v.push_back('a');
v.push_back('b');
char cs = 's';
v.push_back(cs);
char *d = new char('v');
v.push_back(*d);
char *ch = v.data();//获取vector中数组的首地址
char *dst = new char[v.size()];
memset(dst, 0, v.size());
memcpy_s(dst, v.size(), ch, v.size());//拷贝到dst数组