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()无需重新分配即可获得的最大大小.