在C++实际开发过程中,经常需要实现数据的添加、修改、插入、读取等功能,若程序员自己编写一个数据结构来实现,不仅会增加代码的工作量,还会出现许多需要解决的问题。而容器是一种封装了数据结构的类,可实现各种功能,帮助程序员更好地开发。
常用的标准容器可分为两大类,序列容器和关联容器。本文先浅谈序列容器的分类、特点及使用情况,希望帮助开发者选择最合适的容器。
一、分类
序列容器可分为三种,vector向量容器、list列表容器、deque双端队列容器,如下:
vector向量容器:可看作一个动态数组,连续存储结构;
list链表容器:链表结构,在内存中非连续存储;
deque双端队列容器:队列结构,在内存中不一定连续存储;
二、vector向量容器
1、相当于一个动态数组,可实现容器长度的变化,在内存上占有一段连续的地址空间;
2、擅长随机访问以及在容器尾部添加或删除元素,效率较高;
3、在容器头部及中间位置插入或删除元素,需要移动该位置以后的所有元素,效率较低;
vector容器的常见用法,用一段程序来展示:
#include<iostream>
using namespace std;
#include<vector>
int main()
{
vector<int> v1{
11, 12, 13, 14, 15 }; //初始化容器
//1、迭代器法访问容器的所有元素
//v1.begin()、v1.end()分别为容器第一个元素和最后一个元素的迭代器
for (vector<int>::iterator it = v1.begin(); it != v1.end(); it++)
{
cout << *it << " "; //it是循环迭代器,实际上是一个指针,指向容器中的某一个元素的地址,*it就可以得到元素的值
}
cout << endl;
v1.pop_back(); //移除容器中的最后一个元素
v1.push_back(20); //容器尾部添加元素
//2、for循环法访问容器的所有元素
for