STL vector的默认构造函数

default constructor of stl vector

本文关键字:构造函数 默认 vector STL      更新时间:2023-10-16

默认构造函数的签名是

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

怎么读?为什么不加

前缀呢?
template <class ....>

第一个也是唯一一个参数

const allocator_type& alloc = allocator_type()

的意思吗?

仍然是容器类,它们的前缀都是template <class ...>

如果没有模板指令,它如何定义vector的每个元素所使用的类型?

谁能展示一个使用默认方法的例子?

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

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

第一个也是唯一一个参数是什么意思?

这是一个可选参数,可用于提供自定义内存分配器,以便对vector使用内存的方式进行更多控制。通常,您会忽略该参数并获取默认值。默认值是vector<T>::allocator_type的一个实例,它是std::allocator<T>的别名。这将使用全局newdelete操作符从自由存储区分配内存。