[英]Vector C++ Memory Allocation
我想创建一个代表某种结构的元素向量。
问题是我不知道结构会有多少元素,因为数字会经常变化,我真的不知道如何创建一个矢量。
怎么做到的?
为了使它更清楚:
我在创建矢量时看到了这样的事情:
std::vector<structureType> vectorName(nrOfElements);
括号内我不知道元素的数量和在那里写的内容。
如果您默认构造向量,则会得到一个空向量:
std::vector<structureType> vectorName; // holds 0 elements
然后你可以将元素推入向量,增加其大小(另请参见其他向量修饰符 ):
vectorName.push_back(someStructureTypeInstance);
这可能适合您的需求。 如果您担心将来的内存重新分配,可以在构造向量后使用std::vector::reserve
。
std::vector<structureType> vectorName; // holds 0 elements
vectorName.reserve(100); // still 0 elements, but capacity for 100
您可以通过插入和/或删除元素来更改向量包含的元素数。 你专门寻找vector的方法insert
, push_back
/ emplace_back
, resize
, pop_back
, erase
。
你会发现在任何C ++参考方法描述(例如看看这里的“调节器”部分中),并在您选择的C ++入门书。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.