1.multimap、multiset
2.
pair<T1,T2>n
make_pair(first,second)
键类型必须实现"<"操作符
3.value_type是个pair类型,它的值成员可以修改,但键成员不能修改
4.set集合
5.multimap、multiset不能使用下标操作,因为可能一个键值对应多个对象
6.lower_bound()、upper_bound()、equal_range()(返回具有两个迭代器的pair对象)
lower_bound()不一定指向拥有特定键的元素,如果不存在,则会指向该键应该被插入的第一个位置
7.cin>>以空白符作为分隔符来读入字符串。
8.find()函数,如果需要传递一个子区间,则需要传递第一个元素,以及最后一个元素的下一个位置。
迭代器
标准库提供了100中算法
find_first_of()需要两对迭代器参数
9.fill_n()、back_inserter()。
10.标准库中所定义的迭代器并不依赖于特定的容器。
11.流迭代器 任何定义了输入操作符的类型都可以使用istream_iterator
空的istream_iterator用作结束迭代器
12.unique_copy()
13.反向迭代器所提供的函数base()
14.使用普通迭代器给反向迭代器赋值时,其所指向元素可能不是原来所指向的元素。
15.谓词函数
对于谓词的形参没有特别明确的说法,但是要与对应容器的类型相同,关于是否使用引用形式,好像对结果没有影响;谓词的返回值为bool类型,以返回值的结果作为函数的操作条件。
16.list.unique()删除相同函数
17.友元、可变成员、静态成员
18.在类中定义的函数默认为inline()
19.使用类的代码不可以访问private成员
20.typedef定义别名
21.可变数据成员 mutable,可以在const成员函数中改变
22.类的作用域
23.尽管类的成员会在成员函数中被屏蔽,但是可以通过类名加上限制来访问或者this指针
24.全局作用域
25构造函数初始化列表是以冒号开始
26.可以初始化const或引用类型的对象,但不能对他们进行赋值。可以将他们初始化放在初始化列表中
27.对于定义在全局范围内的内置类型和数组才进行初始化,对于局部范围内不初始化
28.explicit构造函数
29.友元函数
30.static成员与类相关联,而不与类的对象相关联
31.static函数没有this指针
32.const static数据成员可以在类定义中初始化
33.非static成员被限定声明为其自身对象的指针或引用
34.static数据成员可以作为默认实参
35.类型接口