c ++在向量中找到元素的实际数量

use*_*379 1 c++ size vector

std::vector<Card> m_vector;
m_vector.resize(10);
Run Code Online (Sandbox Code Playgroud)

所以我有类似的东西设置,我初始化矢量的存储容量为10.但是,当我的程序启动时,我将只有2个元素可以使用,并且它将在以后没有固定的速率增加.

m_vector.size()
Run Code Online (Sandbox Code Playgroud)

将返回10,使我很难做一个循环.有没有办法找出矢量中的实际元素数量?

Ker*_* SB 12

之后的元素数量resize(10) 为 10. resize如果您只需要两个元素且容量为10,则不想使用.相反,您需要:

std::vector<Card> m_vector(2);  // two elements
m_vector.reserve(10);           // space for 10 without reallocation
Run Code Online (Sandbox Code Playgroud)

您可以使用size()查询当前元素数量,以及capacity()无需重新分配即可获得的最大大小.