默认构造函数的签名是
explicit vector (const allocator_type& alloc = allocator_type());
如何阅读? 为什么它没有以
作为前缀template <class ....>
第一个也是唯一的论点是什么
const allocator_type& alloc = allocator_type()
意思?
所有stl容器类都已加上template <class ...>
如果不跟随模板指令,它如何定义用于向量的每个元素的类型?
有人可以使用默认方法显示示例吗?
答案 0 :(得分:3)
为什么它不以
template <class...>
为前缀?
因为它在vector
类模板的定义中。在类模板中,您没有指定每个成员也是模板。除了类参数之外,向成员添加template
规范还会为其提供额外的模板参数。
第一个也是唯一的论点是什么意思?
这是一个可选参数,可用于提供自定义内存分配器,使您可以更好地控制向量如何使用内存。通常情况下,您会错过该参数并获取默认值。默认值为vector<T>::allocator_type
的实例,它是std::allocator<T>
的别名。这将使用全局new
和delete
运算符从免费商店分配内存。