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

来源:互联网 发布:阿里云免费半年邀请码 编辑:程序博客网 时间:2024/06/05 19:26


 

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

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

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

Constructors构造函数

Operatorsvector进行赋值或比较

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)包含头文件 

1

 #include<vector>

(2)创建vector对象: 

1

vector<int> vec;

(3)尾部插入数字

1

vec.push_back(a);

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

1

cout<<vec[0]<<endl; //记住下标是从0开始的。

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

1

2

3

vector<int>::iterator it;

for(it=vec.begin();it!=vec.end();it++)

    cout<<*it<<endl;

(6)插入元素:   

1

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

(7)删除元素    

1

vec.erase(vec.begin()+2); //删除第3个元素

 

1

vec.erase(vec.begin()+i,vec.end()+j); //删除区间[i,j-1];区间从0开始

(8)向量大小:  

1

vec.size();

(9)清空:

1

vec.clear();

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

#include<stdio.h>

#include<algorithm>

#include<vector>

#include<iostream>

using namespace std;

typedef struct rect

{

    int id;

    int length;

    int width;

  //对于向量元素是结构体的,可在结构体内部定义比较函数,下面按照id,length,width升序排序。

  bool operator< (const rect &a)  const

    {

        if(id!=a.id)

            return id<a.id;

        else

        {

            if(length!=a.length)

                return length<a.length;

            else

                return width<a.width;

        }

    }

}Rect;

int main()

{

    vector<Rect> vec;

    Rect rect;

    rect.id=1;

    rect.length=2;

    rect.width=3;

    vec.push_back(rect);

    vector<Rect>::iterator it=vec.begin();

    cout<<(*it).id<<' '<<(*it).length<<' '<<(*it).width<<endl;    

return 0;

}

阅读全文
0 0
原创粉丝点击