zoukankan      html  css  js  c++  java
  • 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数组
    
  • 相关阅读:
    Lambda表达式
    工具类:mybatis中使用Threadlocal开启session及关闭session
    构造函数
    window phone ListBox多选
    ZOJ 3681 ZJU2013年01月月赛F题 E Cup 2
    2012百度之星冬季赛第四场第二题 度熊的复仇
    HDU 4476 HDOJ Cut the rope
    HDU 4475 HDOJ Downward paths
    2012百度之星冬季赛第二场第二题 消去游戏I
    ZOJ 3684 ZJU2013年01月月赛I题 Destroy
  • 原文地址:https://www.cnblogs.com/zzr-stdio/p/14441360.html
Copyright © 2011-2022 走看看