创建一个空的std::vector<int> v会在刚创建时具有大小(size)为0的特点。这意味着此时向量中没有任何元素,而且其容量(capacity)也返回0,表明还没有为这个向量分配任何内存空间3。换句话说,当你声明了一个如std::vector<int> v;这样的空向量后,它处于一种“准备就绪”的状态,等待着后续的操作来添加元素。 这种初始化方式非常适合那些在程序运行期间才会确定元素数量的情况。由于最初并不知道需要多少空间,因此先创建一个空的向量是合理的做法。随着程序逻辑的发展,可以使用诸如push_back()、emplace_back()等函数向向量中添加元素,或者通过resize()方法预先设定好向量的大小4。 此外,值得注意的是,虽然刚开始时v.size()为0,但你可以随时调用reserve()函数来为向量预留一定的容量,这样可以在一定程度上优化性能,尤其是在你预见到未来将要插入大量元素的情况下。这样做可以减少因多次增长而引起的内存重新分配次数7。 例如,如果你预计最终会存储100个整数,那么可以在一开始就执行v.reserve(100);。这不会改变v.size()的值,但它确实会影响v.capacity(),即为向量提前分配了足够的内部存储空间。不过,请记住,即使指定了容量,实际的元素数量仍然是由size()决定的,只有当真正插入了元素之后,size()才会相应增加。 总之,创建一个空的std::vector<int> v是一种常见且有效的做法,它允许我们在不知道确切元素数量的情况下开始工作,并且可以根据需要灵活地调整向量的内容和大小