STL简介

目录

一 STL是什么

二 STL怎么产生的

三 STL的六大组件


一 STL是什么

STL是c++标准库的重要组成部分。包含数据结构和算法的框架。

比如:vector list sort-》STL

Istream ostream -》标准库

STL是标准库的一个子集。也就是说vector,list等是在std::这个命名空间域中的。

二 STL怎么产生的

惠普实验室完成后开源的。任何人都可以免费使用,但是一旦你使用它创造出有价值的东西,相应的也必须要开源。

三 STL的六大组件

空间配置器:简化的内存池,提高效率。

拿string举例子

为什么要学习string?string有什么意义呢?

使用广泛,相当于是定义一个的类,可以用来:存储名字,身份证号,地址……

虽然不是和STL一起产生的,但是符合STL规范。

类模板

为什么要设计成模板,为什么存在这么多种的string,这些不同的string和最初的string有什么关系?

string是用一个字符的顺序容器来实现的支持动态增长的char的字符数组

为什么有那么多种类的串?

wchat_t宽字符为unicode编码来准备的。

字符数组代表对应的字符串,他们存储信息代表不同的文字。

之前接触的ascall 是最先产生的,标准是针对美国国家标准局的,用于美国标准信息交换。

一个字符就能表示英美文字因为英美文字只包含字母数字+标点符号。

一个char能表示256种状态

字符对应0101,ascall对应编码表,能很好地去表示英文。

内存中存储的是对应的整型值,根据ascall表中的映射关系一一对应来显示。

ASCALL码是什么?

英文字符在内存中所存储的值

计算机推广后,要表示全世界的其他文字,那么编码表就丰富了。编码表:内存存的值和对应文字符号的映射关系

为了更好表示不同国家的文字,设计出utf-8 utf-16 utf -32系列的编码规则。

其他编码表:多个字符来设计。

utf-8八个比特位一个字节,兼容ASCALL码。

不同种类的编码格式能支持不同国家的文字

宽字符-》两个字节一个字符或者三个字节一个字符-》更好的表示一个国家的文字

Unicode-》万国码 表示各个国家的文字产生的

gbk一般用于中文编码,台湾繁体字。

拿中文举例子:

中文用char映射不下

一个字符不能表示完汉字就用两个字符来对应,如果两个还是标识不完整就用三个char来对应。

常见汉字其实就用两个字符编码,他有六万多种状态,与内存中存储对应的数字,根据映射关系对应成对应的汉字。

 

汉字编码,一般为了兼容ASCALL 头几个比特位是和英文状态一样的。某个固定规律开始才是汉字

并且中文编码把同音字编码在一起,净网系统就运用了这个原理。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值