社区
C++ 语言
帖子详情
容器是在哪分配的内存?
icosagon
2006-11-13 04:45:19
容器是在堆上分配的内存吗?我baidu,google没有说明白的,怎么看像都在堆上分配的内存啊?我想在栈上用容器分配小容量的内存行不行?初学stl不明白,在堆上分配效率不是没有在栈上高吗?
...全文
305
12
打赏
收藏
容器是在哪分配的内存?
容器是在堆上分配的内存吗?我baidu,google没有说明白的,怎么看像都在堆上分配的内存啊?我想在栈上用容器分配小容量的内存行不行?初学stl不明白,在堆上分配效率不是没有在栈上高吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
taodm
2006-11-14
打赏
举报
回复
你说对了
string1 + string2重新申请内存copy过去后在删原来的string
icosagon
2006-11-13
打赏
举报
回复
string在我印象中怎么是不连续的,我也不记得在哪看到的这句话了,不过说回来,不连续的话
成员函数c_str()返回的不是const char *吗(难道是copy后还给个const,无法想象~~) 可是若是连续的string1 + string2又是如何实现的,难道重新申请内存copy过去后在删原来的string?有点晕
taodm
2006-11-13
打赏
举报
回复
如果你能力足够强,char [1024]比vector<char>(1024),能略快几百个指令周期吧。
但代码将复杂好多,出错可能性大增。
string也是连续内存。
icosagon
2006-11-13
打赏
举报
回复
栈归还内存是出了作用域就归还的吧,只要我没有超过1024*1024*2差不多这个数字吧,我的栈就不会出现问题吧,当然在1024够用情况下,char [1024]快,还是vector<char>(1024) (也不知这种写法正不正确)快?另外string的内存是不连续的吗?
taodm
2006-11-13
打赏
举报
回复
你怎么知道现在那个数组里已经放了多少字节数据?
1024,多开几个,你就栈溢出了
所以,能用vector<char>/string,就别用数组。
icosagon
2006-11-13
打赏
举报
回复
比如,我只需要作用域在一个函数内的情况,我用char [1024]还是vector<char>?
taodm
2006-11-13
打赏
举报
回复
如果真的感兴趣,看<STL源码剖析>
J_Vector
2006-11-13
打赏
举报
回复
关注~
OOPhaisky
2006-11-13
打赏
举报
回复
容器有自己的allocator,楼主可以找找开源的STL源代码看看。
容器的空间应该都是动态分配的,而非静态分配的,也就是说,不是分配在栈上的。
icosagon
2006-11-13
打赏
举报
回复
生存期我是知道的,不过我没在项目中用过STL,在栈上用容器确实情况很少见(我想像的),不过我真正想搞清楚的是stl的内存分配机制,alloctor在STL里是怎么回事?我一点也不明白
睡在床板下_
2006-11-13
打赏
举报
回复
alloc 头文件里有..
stl 中内存分配用的是molloc
taodm
2006-11-13
打赏
举报
回复
栈上的东西,函数一返回就全失效了。
所以,楼主:栈里变量的生存期、堆里对象的生存期、全局对象/static局部变量的生存期问题,你搞清楚了没有?
如何给docker
容器
分配
内存
和cpu
如何给docker
容器
分配
内存
和cpu?默认情况下,
容器
使用的资源是不受限制的。也就是可以使用主机内核调度器所允许的最大资源。但是在
容器
的使用过程中,经常需要对
容器
可以使用的主机资源进行限制,下面我们来介绍下...
docker
容器
内存
分配
(1)和CPU控制一样,docker也提供了若干参数来控制
容器
的
内存
使用配额,可以控制
容器
的swap大小、可用
内存
大小等各种
内存
方面的控制。 主要有以下参数: memory-swappiness: 控制进程将物理
内存
交换到swap分区的...
docker
容器
如何
分配
内存
。
docker
容器
的
内存
配置
c++ STL
容器
的
内存
分配
要了解问题的原因,我们就要了解C++中stl
容器
的
内存
分配
策略。我们才知道在哪些操作下可能导致迭代器失效,引用(指针)失效。二.问题分类首先我们把以上的问题分成两类:
容器
的迭代器为什么会失效?
容器
元素的引用...
docker
容器
run时指定
分配
内存
和CPU
容器
过多会导致系统资源使用明显不足,需要在创建
容器
时指定
容器
资源
分配
获取系统CPU核数 cat /proc/cpuinfo | grep processor | wc -l 获取系统
内存
free -m 然后根据项目需求进行系统资源
分配
docker...
C++ 语言
64,642
社区成员
250,580
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章