首页 > 解决方案 > 向量的初始化

问题描述

当我执行以下语句时:

vector <int> v;

v 的值究竟是多少?

它只是一个指向内存块开头的指针吗?它的值会是 NULL 吗?

一些点可能与另一个比这个更复杂的问题重复,并且较少关注1)调用类的默认构造函数vector和2)我认为是指向的数组的初始化的比较int

标签: c++stdvector

解决方案


您的语法将调用不带参数的构造函数,也称为默认构造函数。根据std::vector 构造函数文档,您可以看到它将创建一个空向量。

它指向的指针无关紧要,因为您不应该在容器为空时取消引用它的值。请注意,如果您想存储内部指针的值,例如std::vector::data(),它可能会在您向向量添加元素时随时更改(嗯,从技术上讲,您可以预测指针何时会改变,但最好的做法是让指针总是改变)。


推荐阅读