C++学习之路(3) 常用数据结构与STL

本文介绍了STL(标准模板库),包括STL的六大组件:容器、算法、迭代器等。重点讨论了容器,特别是序列式容器如vector、list和deque,以及关联式容器如set和map。此外,还提到了算法如sort和find,以及迭代器在STL中的作用。
摘要由CSDN通过智能技术生成

一.什么是STL

STL全称为Standard Template Library,即标准模板库,该库提供一些常用的容器对象和一些通用的算法等,大家可以理解STL就是一个库,该库帮我们封装了很多容器类和通用的方法,我们可以通过调用该库中封装好的方法和容器类来进行编程

二.STL 六大组件

  • 容器(Container)
  • 算法(Algorithm)
  • 迭代器(Iterator)
  • 函数对象,又称仿函数(Function object)
  • 适配器(Adaptor)
  • 空间配置器(Allocator)

本文主要讨论容器组件。

容器

STL中容器可分为序列式容器和关联式容器,其中,序列式容器的每个元素的位置取决于元素被插入时设置的位置,和元素值本身无关,而,关联式容器的元素位置取决于特定的排序规则,和插入顺序无关。意思就说,序列式容器中每个元素的位置与插入的顺序对应,而关联式容器中元素会根据特定的排序规则对每个元素进行排序,与元素插入的顺序无关。

序列式容器包括:vector、list和deque,而关联式容器有:set、multiset、map和multimap
这里写图片描述
vector适合模拟栈,deque适合模拟队列,list适合模拟链表。

算法

算法是用来操作容器中数据的模板函数,它抽象了对数据结构的操作行为。要使用STL中定义的算法,应首先引入头文件。例如STL中的sort()函数可以对容器中的数据进行排序,可以使用find()函数来搜索容器中的某个元素。

迭代器

STL实现要点是将容器和算法分开,使两者彼此独立。迭代器使两个联系起来,迭代器提供访问容器中的方法。迭代器实质上是一种智能指针,它重载了->和*操作符。事实上,C++指针也是一种迭代器。

四.STL demo

vector

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(void){
    int a[]={
  1,3,4,6,8,7};
    vector<int> arr(a,a+6);
    vector<int> ::iterator begin;
    /*Initialize a vector*/
    cout<<"Initialize vector arr with a:"<<endl;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值