1:C++构造函数的初始化方法:
2:
函数对象(Function Objects)
{
public:
More(int v) : val(v) {}
int operator()(int v)
{
return v > val;
}
private:
int val;
}
声明一个 Mess 对象:
More more_than_5(5);
一个最简单的模板 swap
- 缺省构造函数(default constructor)
- shape() : x_pos(0), y_pos(0), color(1) {}
- 拷贝构造函数(copy constructor)
- shape(int x, int y, int c = 1) : x_pos(x), y_pos(y), color(c) {}
- shape(const shape& s) : x_pos(s.x_pos), y_pos(s.y_pos), color(s.color) {}
在使用STL时,经常需要把函数对象作为算法的输入参数,或着实例化一个容器(container)时的输入参数。所谓函数对象(function object)是定义了函数调用操作符(funiton-call operator,即operator())的对象。请看下面的例子:
{
public:
More(int v) : val(v) {}
int operator()(int v)
{
return v > val;
}
private:
int val;
}
声明一个 Mess 对象:
More more_than_5(5);
一个最简单的模板 swap
函数模板 :
void swap(int& a, int& b)
{
int tmp = a;
a = b;
b = tmp;
}
||
/ /
template <class T>
void swap(T& a, T& b)
{
T tmp = a;
a = b;
b = tmp
}
容器(Container)
TL中有顺序容器(Sequence Container)和关联容器(Associative Container)。
顺序容器组织成对象的有限线性集合,所有对象都是同一类型。STL中三种基本顺序容器是:向量(Vector)、线性表(List)、双向队列(Deque)。
顺序容器(Sequence Container) | 向量(Vector) |
| 双向队列(Deque) |
| 线性表(List) |
关联容器(Associative Container) | 集合(Set) |
| 多集合(MultiSet) |
| 映射(Map) |
| 多映射(MultiSet) |