Effective STL学习系列--笔记一

1,string和wstring

STL同时支持string和wstring(宽字符串),类似地就像支持char和char *一样,也支持wchar和wchar*。

string和wstring都是同一个模板的实例化,basic_string。

2,容器和迭代器

vector、string、deque和list称为标准序列容器。set、multiset、map和multimap称为标准关联容器。

迭代器有以下5类:

输入迭代器--每个迭代位置只能被读一次,用于读和写的输入流,例如文件;

输出迭代器--每个迭代位置只能被写一次,用于读和写的输出流,例如文件;

前向迭代器--拥有输出和输出迭代器能力,可以反复读或写一个位置,它不支持operator--,所以可以高效地向前移动任意次数。

散列容器可产生前向迭代器,单链表容器也提供前向迭代器。

双向迭代器--除了具有前向迭代器的功能,它可以像前向迭代器的前进一样后退;

标准关联容器都提供双向迭代器,list也可以提供。

随机访问迭代器--随机访问器除了具备双向迭代器的能力,也提供“迭代算术”,即具有一步向前或向后的能力。vector、string和deque都提供随机访问迭代器。指进数组的指针可以作为数组的随机访问迭代器

3,函数对象

重载了函数调用操作符(即,operator())的任何类叫做仿函数类。从这样的类建立的对象称为函数对象或仿函数。STL中大部分可以使用函数对象的地方也都可以用真函数,所以我经常使用术语“函数对象”来表示C++函数和真的函数对象

4,绑定器

函数bind1st和bind2nd称为绑定器。

你可能感兴趣的:(Effective STL学习系列--笔记一)