?
当前位置:??编程语言>c/c++

c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件

?
分享到:
????发布时间:2014-10-13??


????本文导语:? Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂度。 &...

?? Vectors 包含着一系列连续存储的元素,其行为数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂度。

? ?c++ stl容器vector的头文件: ?#include

? ?c++ stl容器vector的成员函数介绍:

Constructors构造函数
Operators对vector进行赋值或比较
vector::assign()对Vector中的元素赋值
vector::at()返回指定位置的元素
vector::back()返回最末一个元素
vector::begin()返回第一个元素的迭代器
vector::capacity()返回vector所能容纳的元素数量(在不重新分配内存的情况下)
vector::clear()清空所有元素
vector::empty()判断Vector是否为空(返回true时为空)
vector::end()返回最末元素的迭代器(译注:实指向最末元素的下一个位置)
vector::erase()删除指定元素
vector::front()返回第一个元素
vector::get_allocator()返回vector的内存分配器
vector::insert()插入元素到Vector中
vector::max_size()返回Vector所能容纳元素的最大数量(上限)
vector::pop_back()移除最后一个元素
vector::push_back()在Vector最后添加一个元素
vector::rbegin()返回Vector尾部的逆迭代器
vector::rend()返回Vector起始的逆迭代器
vector::reserve()设置Vector最小的元素容纳数量
vector::resize()改变Vector元素数量的大小
vector::size()返回Vector元素数量的大小
vector::swap()交换两个Vector


c++ stl容器vector基本操作:

(1)包含头文件 ?

?#include

(2)创建vector对象:?

vector?vec;

(3)尾部插入数字

vec.push_back(a);

(4)使用下标访问元素:?

cout<<>

(5)使用迭代器遍历访问元素.

vector::iterator?it;
for(it=vec.begin();it!=vec.end();it++)
????cout<<*it<<>

(6)插入元素: ? ?

vec.insert(vec.begin()+i,a);?//在第i+1个元素前面插入a;

(7)删除元素: ? ?

vec.erase(vec.begin()+2);?//删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j);?//删除区间[i,j-1];区间从0开始

(8)向量大小: ??

vec.size();

(9)清空:

vec.clear();

c++ stl容器vector用法详细代码

#include
#include
#include
#include
using?namespace?std;
typedef?struct?rect
{
????int?id;
????int?length;
????int?width;
  //对于向量元素是结构体的,可在结构体内部定义比较函数,下面按照id,length,width升序排序。
  bool?operator?vec;
????Rect?rect;
????rect.id=1;
????rect.length=2;
????rect.width=3;
????vec.push_back(rect);
????vector::iterator?it=vec.begin();
????cout<<(*it).id<<'?'<<(*it).length<<'?'<<(*it).width<


相关文章推荐:


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

?2012-2019,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号