《C++ Primer Plus(第六版)》(34)(第十六章 string类和标准模板库 笔记)

1.string的构造函数

string(string&& str)

不保证将str视为const,这种构造函数被称为移动构造函数。

在有些情况下,编译器可能使用它而不是复制构造函数,以优化性能。


2.string的构造函数

string(initializer_list<char> il)

能够将列表初始化语法用于string类

string s = { 'a', 'b', 'c' };

大概这样写。


3.string最大的允许长度由常量string::npos指定。

通常是最大的unsigned int值


4.string的容量通常是16的倍数-1,例如调用reserve(50),48-1是放不下,只能要求64-1,的内存了,即63


5.string是基于模板类basic_string的一个具体化,basic_string有4个具体化。

typedef basic_string<char, char_traits<char>, allocator<char> >
	string;
typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >
	wstring;
typedef basic_string<char16_t, char_traits<char16_t>, allocator<char16_t> >
	u16string;
typedef basic_string<char32_t, char_traits<char32_t>, allocator<char32_t> >
	u32string;
u16string和u32string是C++11的


6.auto_ptr:C++98的版本,C++11已经摒弃了,提供了两个新的。指针赋值给别的指针之后,自身变为空了。

只能用于new的情况


7.unique_ptr:唯一指针,不能赋值给另外的指针了。赋值了的话,编译器会报错。如果源是临时右值,则不会报错。

可以使用move()函数来改变唯一指针的赋值

可以用于new和new[]


8.shared_ptr:计数指针,每一个指针指向对象都加1,指针过期就减1,最后一个指针过期的时候才delete。

只能用于new


9.还有一个weak_ptr:本书不讨论这个 


10.模板使得算法独立于存储的数据类型,而迭代器使算法独立于使用的容器类型。

STL定义了5中迭代器,并根据所需的迭代器类型对算法进行了描述。分别是输入迭代器,输出迭代器,正向迭代器,双向迭代器和随机访问迭代器。

输入迭代器使单向迭代器,可以递增,但不能倒退。

对于单通行、只读算法,可以使用输入迭代器;对于单通行、只写算法,则可以使用输出迭代器。

正向迭代器只使用++运算来遍历容器。

双向迭代器支持正向迭代器所有特性,同时支持--运算符。

随机访问迭代器具有双向地带去的所有特性,同时添加了支持随机访问的操作。


11.容器是一个概念,并没有一个确定的基类与之相对应。算是一种规范。

线性复杂度意味着时间与元素数目成正比。


12.vector类型是最简单的序列类型,除非其他类型有特殊有点能够更好满足程序需求,否则应默认使用这种类型。


13.deque双端队列(double end queue)类似于vector

从开始和结尾插入和删除数据,都是固定的时间,支持随机访问。

但是实现更加复杂,速度比vector慢


14.list 双向链表,

list在任何位置插入删除的时间都是固定的。

forward_list单向链表,每个节点都只链接到下一个节点。


15.queue队列,只能从队尾插入,队首弹出。

priority_queue,优先级队列,优先级最大的会被移到队首。


16.生成器(generator)是不用参数就可以调用的函数符。

一元函数(unary function)是用一个参数就可以调用的函数符

二元函数(binary function)是用两个参数可以调用的函数符。

返回bool值的一元函数是谓词(predicate)

返回bool值的二元函数是二元谓词(binary predicate)


17.STL将算法库分成4组:

非修改式序列操作

修改式序列操作

排序和相关操作

通用数字运算

前三组在头文件algorithm中,第四组是专用于数值数据的,在头文件numeric中。


总结,这章的东西看到一头雾水,除了几个常用的东西,其他的东西看得很艰难。

大多数内容都是在使用的时候边用边学的。

或者侧重于算法的功能才更加需要把。

总的来说就是数据结构与算法。迟点肯定要再重温这方面的内容的。或者到时再看回来,就不那么蛋疼了。







posted @ 2016-12-31 13:33  肥宝游戏  阅读(223)  评论(0编辑  收藏  举报