C++中vector容器

一.基本概念:

1.容器:

容器用来存储数据的,数据可以是用户自定义类型(对象),也可以是预定义类型。

2.vector:

vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。

3.迭代器:

(1):迭代器类似于指针类型,它也提供了对对象的间接访问。
(2):指针是c语言中就有的东西,迭代器是c++中才有的,指针用起来灵活高效,迭代器功能更丰富些。
(3):迭代器提供一个对容器对象或者string对象的访问的方法,并且定义了容器范围。

(4)  :迭代器是一种检查容器内元素并遍历元素的数据类型。C++更趋向于使用迭代器而不是下标操作,因为标准库为每一种标准容器(如vector)定义了一种迭代器类型,而只用少数容器(如vector)支持下标操作访问容器元素。

具体内容请看文章:

https://www.cnblogs.com/maluning/p/8570717.html

4.vector和数组的区别:

 数组是c++中类似vector的数据结构,它们都可以对一种类型进行储存,既都是容器。虽说两者有相似之处,但也有显著的区别,c++ primer的作者说到,在实际的编程中,我们作为程序员应该避免用到低级数组和指针,而更应该多用高级的vector和迭代器。两者的相同和区别如下:

     数据结构

Vector

数组

都是对同一种类型的数据进行储存。

都可以用下标操作进行处理

都可以用迭代器进行操作(在c++中每个容器都配有各自的迭代器)

可以用size获取vector的长度

不可以获取,在定义时就已经确定了长度

长度不固定,可以随时增加

长度固定,在定义是就不可以更改

可以在末尾增加vector的元素(用push_back)

不能增加在长度以外的长度

可以确定长度,节约空

不能确定长度,必须在定义时定义一个很大的空间留给数组,造成内存的浪费

二.vector容器的基本使用:

为了可以使用vector,必须在你的头文件中包含下面的代码:

#include <vector> 
using namespace std;

vector属于std命名域的,因此需要通过命名限定,如下完成你的代码:

using std::vector; 
vector<int> vInts;
或者连在一起,使用全名:
std::vector<int> vInts;

三.vector容器常见函数操作:

常见函数的使用:

1.push_back   在数组的最后添加一个数据
2.pop_back    去掉数组的最后一个数据 
3.at                得到编号位置的数据
4.begin           得到数组头的指针
5.end             得到数组的最后一个单元+1的指针
6.front        得到数组头的引用
7.back            得到数组的最后一个单元的引用
8.max_size     得到vector最大可以是多大
9.capacity       当前vector分配的大小
10.size           当前使用数据的大小
11.resize         改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
12.reserve      改变当前vecotr所分配空间的大小
13.erase         删除指针指向的数据项
14.clear          清空当前的vector
15.rbegin        将vector反转后的开始指针返回(其实就是原来的end-1)
16.rend          将vector反转构的结束指针返回(其实就是原来的begin-1)
17.empty        判断vector是否为空
18.swap         与另一个vector交换数据

详细的函数实现功能

其中vector<int> c.

 c.clear()         移除容器中所有数据。

c.empty()         判断容器是否为空。

 c.erase(pos)        删除pos位置的数据

c.erase(beg,end) 删除[beg,end)区间的数据

c.front()         传回第一个数据。

c.insert(pos,elem)  在pos位置插入一个elem拷贝

c.pop_back()     删除最后一个数据。

c.push_back(elem) 在尾部加入一个数据。

c.resize(num)     重新设置该容器的大小

c.size()         回容器中实际数据的个数。

c.begin()           返回指向容器第一个元素的迭代器

c.end()             返回指向容器最后一个元素的迭代器

猜你喜欢

转载自blog.csdn.net/qq_38278799/article/details/81280681