不以物喜,不以己悲

C++ vector用法

C++ vector用法

转至菜鸟教程<C++ vector 容器浅析>

一、什么是vector

vector是一个封装了动态大小数组的顺序容器,它能够存放各种类型的对象。

二、基本函数实现

  1. 构造函数
    • 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中
  2. 增加函数
    • 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)间的数据
  3. 删除函数
    • iterator erase(iterator it)删除指定元素
    • iterator erase(iterator first, iterator last)删除(first, last)中元素
    • void pop_back()删除最后一个元素
    • void clear()清空所有元素
  4. 遍历函数
    • reference at(int pos):返回pos位置元素的引用
    • reference front():返回首元素的引用
    • reference back():返回尾元素的引用
    • iterator begin():返回向量头指针,指向第一个元素
    • iterator end():返回向量尾指针,指向向量最后一个元素的下一个位置
    • reverse_iterator rbegin():反向迭代器,指向最后一个元素
    • reverse_iterator rend():反向迭代器,指向第一个元素之前的位置
  5. 判断函数
    • bool empty() const:判断向量是否为空,若为空,则向量中无元素
  6. 大小函数
    • int size() const:返回向量中元素的个数
    • int capacity() const:返回当前向量所能容纳的最大元素值
    • int max_size() const:返回最大可允许的vector元素数量值
  7. 数组指针
    • 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数组
posted @ 2021-02-24 14:41  这种人  阅读(291)  评论(0编辑  收藏  举报