数据结构之vector&list

本文介绍了C++ STL中的vector和list两种容器,详细阐述了它们的使用方式和区别。vector类似于动态数组,提供直接访问元素、快速随机访问及高效插入和删除尾部元素的能力;而list则是一个双向链表,擅长于在中间插入和删除元素,但随机访问效率较低。文章通过代码示例展示了vector和list的常用操作,包括迭代器、元素访问、容量管理和元素插入删除等。
摘要由CSDN通过智能技术生成

一. vector & list的使用和区别

     STL(标准模板库)是一个C++的软件库,也是C++标准程序库的一部分。vector和list相当于容器,这些容器应该都是STL里面的一个类。而vector封装数组,list封装链表。

     vector

如代码:

#include<vector>
vector<int>a(10);//类型为int,数量为10
a[1] = { 1 };//第二个元素赋值为1
cout << a[1] << endl;//输出第二个元素
vector<int>::iterator pr = a.begin(); //迭代器指向第一个元素
pr++;
cout << *pr << endl;
//输出该元素的值
cout << a.size()
<< endl; //数组元素数量
a.front(); //数组第一个元素的引用
a.back(); //数组最后一个元素的引用

vector 类是以容器(Container) 模式为基准设计的,也就是说,基本上它有 begin()end()size()max_size()empty() 以及 swap() 这几个方法。

· 访问元素的方法

· vec[i] - 访问索引值为 i 的元素引用。 (索引值从零起算,故第一个元素是vec[0]。)

· vec.at(i) - 访问索引值为 i 的元素的引用,以 at() 访问会做数组边界检查,如果访问越界将会抛出一个例外,这是与operator[]的唯一差异。

· vec.front() - 回传 vector 第一个元素的引用。

· vec.back() - 回传 vector 最尾元素的引用。

· 新增或移除元素的方法

· vec.push_back() - 新增元素至 vector 的尾端,必要时会进行内存配置。

· vec.pop_back() - 删除 vector 最尾端的元素。

· vec.insert() - 插入一个或多个元素至 vector 内的任意位置。

· vec.erase() - 删除 vector 中一个或多个元素。

· vec.clear() - 清空所有元素。

· 获取长度/容量

· vec.size() - 获取 vector 目前持有的元素个数。

· vec.empty() - 如果 vector 内部为空,则传回 true 值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值