c++ STL标准库容器

本文详细介绍了C++STL中的关键容器如vector、deque、map和栈,包括它们的定义、操作方法以及在编程中的应用,展示了STL如何提高开发效率和代码可维护性。

目录

1.STL(Containers)简介

2.STL容器

1.vector

1.1vector的定义方式

1.2vector的操作和遍历

 2.deque

2.1deque操作方式

 3.map

3.1map简介

 3.2map定义

3.3map操作

 4.栈

4.1栈的定义

 4.2栈的函数

3.总结 


1.STL(Containers)简介

STL(Standard Template Library)是C++标准库中的一个重要组成部分,它提供了一系列的模板类和函数,用于实现常用的数据结构和算法。STL的设计目标是提供高效、可复用的数据结构和算法,以便开发人员能够更加方便地进行软件开发。

STL主要包含以下几个组件:

  1. 容器(Containers):STL提供了多种容器,如vector、list、deque、set、map等。这些容器提供了不同的数据结构,以满足不同的需求。例如,vector是一个动态数组,list是一个双向链表,set是一个集合,map是一个键值对的映射。

  2. 迭代器(Iterators):迭代器是STL中用于遍历容器元素的一种抽象概念。通过使用迭代器,我们可以方便地对容器中的元素进行访问和操作。STL提供了多种类型的迭代器,如输入迭代器、输出迭代器、前向迭代器、双向迭代器和随机访问迭代器。

  3. 算法(Algorithms):STL提供了大量的算法,如排序、查找、复制、删除、替换等。这些算法可以直接应用于STL容器,也可以应用于普通的数组或其他容器。使用STL算法可以大大简化代码的编写,并提高代码的可读性和可维护性。

  4. 函数对象(Function Objects):函数对象是一种可调用的对象,它可以像函数一样被调用。STL中的很多算法都可以接受函数对象作为参数,以实现不同的操作。STL提供了一些内置的函数对象,如加法、减法、乘法、除法等,同时也支持用户自定义的函数对象。

  5. 适配器(Adapters):适配器是一种特殊的容器或迭代器,可以改变容器或迭代器的接口,以适应不同的需求。STL提供了多种适配器,如栈(stack)、队列(queue)、优先队列(priority_queue)等。


2.STL容器

1.vector

vector底层本质就是一个顺序表,它是一个可变长的数组,采用连续存储的空间来存储数据,它的元素类型也可以是任意的内置类型或者自定义类型

1.1vector的定义方式

1.定义一个任意类型的空的vector

vector<int> abc;

 用法:关键字vector+<定义类型>+空格+名称

2.定义一个任意类型的vector,并用n个val来初始化vector

vector<int> a1(10, 5);// 用10个5来初始化vector

  用法:关键字vector+<定义类型>+空格+名称+定义

3.定义一个任意类型的vector,并用迭代器区间来初始化vector

vector<int> v5(v4.begin(), v4.end());// 用v4的迭代器区间来初始化v5
string s("hello world");
vector<char> v6(s.begin(), s.end());// 用s的迭代器区间来初始化v6

   用法:关键字vector+<定义类型>+空格+名称+变量-区间 

1.2vector的操作和遍历

v.capacity();  //容器容量

 v.size();      //容器大小

 v.at(int idx); //用法和[]运算符相同

 v.push_back(); //尾部插入

 v.pop_back();  //尾部删除

 v.front();     //获取头部元素

 v.back();      //获取尾部元素

 v.begin();     //头元素的迭代器

 v.end();       //尾部元素的迭代器

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小唐C++

干累了,给个吧,求求了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值