【STL学习笔记】一、STL体系

本文详细介绍了C++ STL(标准模板库)的组成部分,包括容器、算法、迭代器、分配器、适配器和仿函数,并探讨了它们之间的关系。讲解了STL如何通过迭代器实现数据和算法的分离,以及如何使用STL容器和算法的实例,还涉及了C++11的range-based for循环的使用。
摘要由CSDN通过智能技术生成

目录

 

1.标准库以header files形式呈现

2.namespce命名空间

3.STL与OO

4.STL六组件及其关系

5.STL组件例子

6.range-based for statement(c++11)例子

7.Cout ,long转string的例子


 

c++标准库包含STL。

1.标准库以header files形式呈现

  1. c++标准库 #include<vector> 不带.h

  2. 新C #include<cstdio> 不带.h 前面加c

  3. 旧C #include<stdio.h> 带.h 仍然可用


2.namespce命名空间

将你写的class,function,template封装后放入一个namespace里,标准库的新headers的组件封装于std中。旧C headers内的组件不能封装在std中。


3.STL与OO

某种程度上,STL的概念与面向对象编程的原则相背, STL数据和算法是分离的而不是结合。

OO是把数据和算法放在一个class里面。
STL将数据和算法分开。 数据存储在容器里,使用算法进行操作。迭代器是这两者之间的粘合剂,让算法与容器可以进行交互。 

这里写图片描述 


4.STL六组件及其关系

容器       Containers,存放数据结构。

用来管理某个特定对象的集合。每一种容器都有自己的优点和缺点,在项目中根据不同的需求,使用不同的容器。容器可以是数组、链表或者类字典。 


算法       Algorithms,进行数据处理的模板函数

 用来处理的元素的集合。例如,可以进行搜索、排序等操作。

STL提供了一些标准算法来处理集合元素。这些算法一般提供最基本的功能,如搜索、排序、复制、修改和数值处理。

算法不是容器类的成员函数,而是全局函数。算法可以操作不同容器类型的元素,甚至可以操作用户自定义的容器类型。总之,既减少了代码量,又增强了性能。


迭代器    Iterators,  相当一种泛化的指针。

用于遍历对象集合的元素。这些集合可以是容器或容器的子集。每一个容器类都提供了它自己的迭代器类型。

根据迭代器所支持的操作,一般分为下面5种。 

  1. 前向迭代器只能利用递增运算符进行前向迭代。像unordered_set、unordered_multiset、unordered_map和unordered_multimap这些容器都“至少”是用前向迭代器(某些情况下可以提供双向迭代器)。 
  2. 双向迭代器是可以用递增运算符向前迭代,或者用递减运算符向后迭代。像list、set、multiset、map和multimap的迭代器都是双向迭代器。 
  3. 随机访问迭代器具有双向迭代器的所有属性。此外,他们还可以进行随机访问。这种迭代器本身支持运算操作,可以改变偏移量,也可以利用关系运算符(
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值