什么是stl? 如何使用stl?

1.什么是STL?

  1. STL(Standard Template Library)是C++的标准模板类库。STL是一个功能强大的基于模板的容器库,通过直接使用这些现成的标准化组件可以大大提高算法设计的效率和可靠性。

  2. STL主要由container(容器)、algorithm(算法)和iterator(迭代器)三大部分构成:

    	1.容器: 用于存放数据对象(元素)
    	2.算法: 用于操作容器中的数据对象
    	3.迭代器: 用于访问容器中的数据对象
    

容器、算法和迭代器成为STL的三大件,它们之间的关系如下图所示:
在这里插入图片描述

1.什么是容器?

  1. 一个容器就是一种数据结构,例如链表、栈、队列等等。这些在STL中都已经实现好了,在算法设计过程中我们可以直接使用它们。

  2. STL容器部分主要由头文件<vector、<string、<list、<set等组成。下面是一些常用的头文件以及说明:
    在这里插入图片描述
    注:为了避免名字冲突,我么在使用STL时一般要加如下实例的代码:

    #include<iostream>
    #include<vector>
    //这一行代码一般这样引入
    using namespace std; 
    
    int main(){	return 0;}
    

2.什么是STL算法?

  1. STL算法一般用来操作容器中数据的模板函数。例如:sort()对一个vector中的数据进行排序。
    2.STL算法部分主要由头文件<algorithm,numeric、functional。最常用的一般就是algorithm这个头文件,其中有大量的模板函数组成。
    实例:对整形数组的排序

    #include<iostream>
    #include<algorithm>
    //定义新的命名空间 
    using namespace std;
    
    int main() {
    	int a[] = {5, 2, 1, 3, 4, 6};
    	sort(a, a+6);	//第一个参数: a是数组的名字(实际上是一个指针) ,
    					//第二个参数: 是数组的名字加要排序的长度 (根据需要 可以选择对数组中的一部分进行排序 )
    	for (int i = 0; i < 6; i++) 
    		cout << a[i] << " ";      //结果:1 2 3 4 5 6
    	return 0;
    }
    

3.什么是STL迭代器?

  1. STL迭代器用于访问容器中的数据对象
    每个容器都有自己的迭代器,只有容器自己知道如何访问自己的元素。迭代器像c/C++中的指针,算法通过迭代器来定位和操作容器中的元素。
  2. 常用的迭代器
    1. iterator : 指向容器中存放元素的迭代器,用于正向遍历容器中的元素。并且可以修改容器中的元素。
    2. reverse_iterator : 反向遍历,并且可以修改容器中的值。
    3. const_iterator : 表示正向遍历,但是不可以修改值,只能读取容器中的元素 。
    4. const_reverse_iterator: 即表示一个反向遍历,仅可读的迭代器。

实例: 用迭代器输出 一个存放int型整数的vector容器中的数据对象(值)

#include<iostream>
//引用vector头文件
#include<vector> 
//使用命名空间
using namespace std;
int main() {
	vector<int> vector1;	//定义一个vector的容器变量vector1
	vector<int>::iterator it;  	// 定义一个正向遍历容器的迭代器
	//向vector1容器的末尾插入元素
	v1.push_back(1);
	v1.push_back(2);
	v1.push_back(3);
	//遍历容器中的值(数据对象)
	for (it = v1.begin(); it != v1.end(); ++it) {
		cout << *it <<endl;    //结果: 1 2 3
	}
	return 0;
}

2.STL容器的用法

有关常用的STL容器的用法稍后进行更新。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

loongloongz

相互鼓励,相互帮助,共同进步。

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

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

打赏作者

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

抵扣说明:

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

余额充值