STL概论

一、STL简介

STL(Standard Template Library,标准模板库)是C++标准库最主要和最重要的组成部分。其重要作用在于:

  (1)它可以用来创建动态增长和减小的数据结构;

  (2)它是类型无关的,因此具有很高的可复用性;

  (3)它在编译时而不是运行时进行数据类型检查,保证了类型安全;

  (4)它是平台无关的,因此保证了最大的可移植性;

  (5)它还可用于基本数据类型,包括指针和引用,这对那些必须使用类层次结构来构造应用程序的语言来说是没法比的。

时间: 2024-10-23 03:47:49

STL概论的相关文章

1 STL概论 版本介绍

1.为什么要建立STL:程序的复用性的提升(建立在标准之上) 2.STL的价值: 1)STL带来了极具实用价值的组件 2)以泛型思想为基础的"软件组件分类学" 3.一句话总结STL STL实现的的是以抽象概念构架起的接口标准. 在这个接口下,任何组件相互独立:任何组件通过Iterator胶合:通过adaptor配接:通过functor选择 policy. 4.STL形成 class:自定义类别 template:将类别参数化 traits:编程技巧 通过这个三者,形成STL 5.STL

STL 1.概论

1.六大组件: 1.1:容器.算法.迭代器.仿函数.适配器.空间配置器. 1.2:容器包括序列式容器以及关联式容器(有个key起到索引的作用). 1.3:算法(algorithm)分为质变算法及非质变算法. 1.4:迭代器(iterator)主要是用双向迭代器以及随机访问. 1.5:STL的优点:1.直接编译器内建,无需安装:2.高复用性.高性能.高移植性:3.操作与数据分离,利用迭代器进行沟通. 原文地址:https://www.cnblogs.com/ccllcc/p/12537238.ht

STL学习思想

1.模版:一定要注意参数和返回值的模版 2.STL一系列的API:一定要注意返回值 3.容器中的都是值拷贝,而不是引用,在执行插入时,内部实行拷贝动作,所以STL中插入类时,一般都必须:无参构造函数,拷贝构造函数,重载=运算符,必须的自己重写,达到深拷贝!!! 4.一元谓词:函数只有一个参数,谓词:代表函数的返回值必须为bool类型;   二元谓词:函数只有二个参数,谓词:代表函数的返回值必须为bool类型; 5.算法和具体的数据类型相分离:通过函数对象(仿函数)来实现,本质:函数指针!!! 6

Atitit.html css  浏览器原理理论概论导论attilax总结

Atitit.html css  浏览器原理理论概论导论attilax总结 1.1. 浏览器是怎样工作的:渲染引擎,HTML解析(连载二)1 2. 5.1.1 DOM标准 1011 3. <WebKit技术内幕>(朱永盛...)[简介_书评_在线阅读] - .html2 4. HTML5与CSS3权威指南(第3版 上册)2 5. HTML5权威指南[非常全面详实的网页设计参考书]3 6. 深入理解Android:WebKit卷4 1.1. 浏览器是怎样工作的:渲染引擎,HTML解析(连载二)

C++ STL学习——vector

学过C++的人肯定会很熟悉STL标准模板库,STL其实就是封装了一系列的接口,供我们调用.很多函数或者算法的实现不需要我们从头开始写,大大提高我们的编程效率.这篇博客在简单介绍STL的情况下,会详细的来介绍vector的使用. STL共有六大组件: 一.容器(Container):是一种数据结构,如list,vector,deque,queue等,以模板类的方法提供,为了访问容器中的数据,可以使用由容器类提供的迭代器. 二.迭代器(Iterator):提供了访问容器中对象的方法. 三.算法(Al

C++ STL中Map的按Key排序和按Value排序

原文  http://blog.csdn.net/iicy266/article/details/11906189 map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择. 我们这样定义,map<string, int>,其中学生姓名用string类型,作为Key:该学生的成绩用int类型,作为value.这样一来,我们可以根据学

stl容器区别: vector list deque set map及底层实现

在STL中基本容器有: vector.list.deque.set.map set 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问 set :集合, 用来判断某一个元素是不是在一个组里面,使用的比较少 map :映射,相当于字典 ,把一个值映射成另一个值,如果想创建字典的话使用它好了 底层采用的是树型结构,多数使用平衡二叉树实现 ,查找某一值是常数时间,遍历起来效果也不错, 只是每次插入值的时候,会重新构成底层的平衡二叉树,效率有一定影响. vector.list.dequ

STL vector,deque,list

一.vector可变长的动态数组必须包含头文件 #include <vector>支持随机访问迭代器• 根据下标随机访问某个元素时间为常数• 在尾部添加速度很快• 在中间插入慢所有STL算法 都能对vector操作 构造函数初始化:vector();无参构造函数, 将容器初始化成空的vector(int n);将容器初始化成有n个元素vector(int n, const T & val);假定元素类型是T, 将容器初始化成有n个元素, 每个元素的值都是valvector(iterat

C++ STL hash_map的使用以及STL hash_map的大“坑”

计算机编程中经常会用到hash表,而在C++中,使用STL编程更是少不了的.本文将介绍STL中hash_map的使用.在hash_map中使用自定义类型作为key值的方法以及在使用char *类型作为key值时遇到的问题. 一.需要的头文件以及命名空间 在linux下使用STL hash_map除了需要引用其所在头文件<hash_map>之外还要引用其命名空间.像这样写  1 using namespace __gnu_cxx; 二.hash_map的定义 先来看看hash_map是怎么定义的