8

我想创建一个代表某种结构的元素向量。

问题是我不知道结构会有多少元素,因为数字会经常变化,而且我真的不知道如何创建向量。

如何做到这一点?

为了更清楚:

我看到在创建向量时,您会执行以下操作:

std::vector<structureType> vectorName(nrOfElements);

我不知道元素的数量以及在括号之间写什么。

4

3 回答 3

14

如果你默认构造向量,你会得到一个空的:

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
于 2013-05-30T13:31:50.030 回答
1

我不知道在括号之间写什么

什么都不写 )) 在这种情况下,您将创建一个空向量,它可以使用std::vector::push_back()增长

更新:不要忘记删除空()以避免烦恼解析

于 2013-05-30T13:32:37.450 回答
1

您可以通过插入和/或删除元素来更改向量包含的元素数量。您正在专门寻找向量的方法insert, push_back/ emplace_back, resize, pop_back, erase

您可以在任何 C++ 参考资料中找到这些方法的描述(例如在“修改器”部分查看)和您选择的 C++ 初学者书籍。

于 2013-05-30T13:33:29.110 回答