目录
一 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 头几个比特位是和英文状态一样的。某个固定规律开始才是汉字
并且中文编码把同音字编码在一起,净网系统就运用了这个原理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)