C++ 动态分配的 std::vector

Posted

技术标签:

【中文标题】C++ 动态分配的 std::vector【英文标题】:C++ Dynamically allocated std::vector 【发布时间】:2013-11-18 22:26:31 【问题描述】:

我是 C++ 新手,我正在用 C++ 编写大学项目 Driver Book。 我是第一次使用向量,我想让它与动态内存分配一起使用。

我有这样声明的向量:

vector <item> book;

需要什么才能使其与动态内存分配一起使用?

提前致谢。

【问题讨论】:

请详细说明使其适用于动态内存分配!在哪些方面声明 vector &lt;item&gt; book 不足以满足您的需求? vector 内部使用动态分配,没有太多需要在任何标准库容器上真正使用动态分配。 vector 确实适用于动态分配,总是。你不需要做任何事情来做到这一点。我想你的问题是'如何使用矢量?' 【参考方案1】:

完成。当您 push_back 进入时,vector 已经在内部动态分配。

【讨论】:

【参考方案2】:

更详细一点:vector&lt;T&gt; 是一个可调整大小的数组,它可以容纳T 类型的对象。 它在内部动态获取内存。现在,如果您想创建具有动态分配的向量,您可以随时使用vector&lt;item&gt;* myVec = new vector&lt;item&gt;(); 虽然通常您永远不需要动态创建vector

【讨论】:

【参考方案3】:

向量在内部使用动态内存分配。所以你需要做的就是把元素放进去:

item i = ....;
book.push_back(i);

请参阅this reference,了解您可以使用矢量执行的更多操作。

【讨论】:

以上是关于C++ 动态分配的 std::vector的主要内容,如果未能解决你的问题,请参考以下文章

C ++如何在堆栈上动态分配内存?

在 Visual Studio 2019 C++ 中,如何扩展动态分配的数组以显示其所有元素?

堆中连续分配对象的动态向量

std::vector

C++ 优化 - 堆栈分配的数组类型与外部链接维度?

了解我有多少内存可用于动态向量 C++ [关闭]