stl向量的默认构造函数

时间:2013-06-04 12:15:34

标签: c++ stl

默认构造函数的签名是

explicit vector (const allocator_type& alloc = allocator_type());

如何阅读? 为什么它没有以

作为前缀
template <class ....>

第一个也是唯一的论点是什么

const allocator_type& alloc = allocator_type()

意思?

所有stl容器类都已加上template <class ...>

作为前缀

如果不跟随模板指令,它如何定义用于向量的每个元素的类型?

有人可以使用默认方法显示示例吗?

1 个答案:

答案 0 :(得分:3)

  

为什么它不以template <class...>为前缀?

因为它在vector类模板的定义中。在类模板中,您没有指定每个成员也是模板。除了类参数之外,向成员添加template规范还会为其提供额外的模板参数。

  

第一个也是唯一的论点是什么意思?

这是一个可选参数,可用于提供自定义内存分配器,使您可以更好地控制向量如何使用内存。通常情况下,您会错过该参数并获取默认值。默认值为vector<T>::allocator_type的实例,它是std::allocator<T>的别名。这将使用全局newdelete运算符从免费商店分配内存。