分配向量时,它们使用堆上的内存还是堆栈上的内存?

When vectors are allocated, do they use memory on the heap or the stack?(分配向量时,它们使用堆上的内存还是堆栈上的内存?)
本文介绍了分配向量时,它们使用堆上的内存还是堆栈上的内存?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

限时送ChatGPT账号..

以下所有说法都是正确的吗?

Are all of the following statements true?

vector<Type> vect; //allocates vect on stack and each of the Type (using std::allocator) also will be on the stack

vector<Type> *vect = new vector<Type>; //allocates vect on heap and each of the Type will be allocated on stack

vector<Type*> vect; //vect will be on stack and Type* will be on heap. 

如何在 vector 或任何其他 STL 容器中为 Type 内部分配内存?

How is the memory allocated internally for Type in a vector or any other STL container?

推荐答案

vector<Type> vect;

将在堆栈上分配vector,即头信息,但在空闲存储(堆")上分配元素.

will allocate the vector, i.e. the header info, on the stack, but the elements on the free store ("heap").

vector<Type> *vect = new vector<Type>;

分配免费商店中的所有内容.

allocates everything on the free store.

vector<Type*> vect;

将在堆栈上分配 vector 并在空闲存储上分配一堆指针,但是这些点的位置取决于您如何使用它们(您可以将元素 0 指向空闲存储和元素1 到堆栈,比如说).

will allocate the vector on the stack and a bunch of pointers on the free store, but where these point is determined by how you use them (you could point element 0 to the free store and element 1 to the stack, say).

这篇关于分配向量时,它们使用堆上的内存还是堆栈上的内存?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

OpenGL transforming objects with multiple rotations of Different axis(OpenGL 变换不同轴多次旋转的对象)
GLFW first responder error(GLFW 第一响应者错误)
SOIL not linking correctly(SOIL 连接不正确)
Core profile vs version string? Only getting GLSL 1.3/OGL 3.0 in mesa 10.0.1(核心配置文件与版本字符串?在 mesa 10.0.1 中只获得 GLSL 1.3/OGL 3.0)
What is the range of OpenGL texture ID?(OpenGL 纹理 ID 的范围是多少?)
How taxing are OpenGL glDrawElements() calls compared to basic logic code?(与基本逻辑代码相比,OpenGL glDrawElements() 调用的繁重程度如何?)