array
- array本身是c语言中已经存在的数组,为什么还要包装成容器
- array被包装成一个容器,要遵循容器的规则,要提供iterator且迭代器要提供五种相应的类型,以便于让算法获得必要的信息,方便算法采取最优化的操作
- 如果没有包装,array就被排斥在标准库六大部件之外,无法直接与算法、仿函数等等交互
arrayTR1版
- TR1是介于c++98和c++11之间的一种版本
- array没有构造函数与析构函数
template
struct array
{
typedef _Tp value_type;
typedef _Tp* pointer;
typedef value_type* iterator;//它的迭代器也是指针
//Support for zero-sized arrays mandatory
value_type _M_instance[_Nm ? _Nm : 1];
iterator begin()
{ return iterator(&_M_instance[0]); }
iterator end()
{ return iterator(&_M_instance[_Nm]); }
...
}
array myArray;
auto ite = myArray.begin()'
ite += 3;
cout<< *ite;
4.9版
int a[100];//OK
int[100] b;//fail
typedef int T[100];//OK
T c;//OK
forward_list