1

默认构造函数的签名是

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

怎么读这个?为什么它不以a为前缀

template <class ....>

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

const allocator_type& alloc = allocator_type()

意思是?

所有 stl 容器类是否都已以 a 为前缀template <class ...>

如果向量后面没有模板指令,它如何定义用于向量的每个元素的类型?

任何人都可以使用默认方法显示示例吗?

4

1 回答 1

3

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

因为它在vector类模板的定义中。在类模板中,您没有指定每个成员也是一个模板。除了类参数之外,向成员添加template规范将为其提供额外的模板参数,而此构造函数不需要这些参数。

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

这是一个可选参数,可用于提供自定义内存分配器,让您更好地控制向量如何使用内存。通常,您会错过该参数并获得默认值。默认是 的实例vector<T>::allocator_type,它是 的别名std::allocator<T>new这将使用全局和运算符从空闲存储中分配内存delete

于 2013-06-04T12:25:54.037 回答