c++:std::string,std::function,std::vector隐式申请动态内存 1std::string①如下代码声明一个局部std::string变量s打印出来s的capaciy为15也就是说默认情况下std::string能保存15个字符不需要动态申请内存对malloc设置断点没有打断说明没有动态申请内存。②向s赋值一个长度为15的字符串不会申请动态内存。③向s赋值一个长度为16的字符串会申请动态内存会调用malloc。#include iostream #include string #include unistd.h int main() { sleep(10); std::string s; std::cout s.capacity s.capacity() std::endl; std::cout before test 15 std::endl; sleep(10); s helloworldhello; sleep(10); std::cout before test 16 std::endl; s helloworldhello1; return 0; }2std::function如下代码两个lambda表达式lambda1的size为16lambda2的为24lambda表达式就是一个匿名对象对象大小由捕获列表确定考虑内存对齐。使用lambda1对f进行赋值不会调用malloc使用lambda2进行赋值会调用malloc。#include iostream #include string #include vector #include unistd.h #include functional int main() { std::functionvoid() f; long ld1 100; long ld2 200; char ld3 3; std::cout f.size sizeof(f) std::endl; sleep(10); auto lambda1 [ld1,ld2]() {std::cout in lambda ld1 ld2 std::endl;}; std::cout sizeof(lambda1) sizeof(lambda1) std::endl; f lambda1; f(); auto lambda2 [ld1,ld2,ld3]() {std::cout in lambda ld1 ld2 ld3 std::endl;}; std::cout sizeof(lambda2) sizeof(lambda2) std::endl; f lambda2; f(); return 0; }3std::vectorstd::vector的默认容量为0随着元素的增加逐渐申请内存。新申请内存时也会把旧内存释放。#include iostream #include string #include vector #include unistd.h int main() { sleep(10); std::vectorint d1; std::cout 1 vector capacity d1.capacity() std::endl; d1.push_back(1); std::cout 2 vector capacity d1.capacity() std::endl; d1.push_back(2); std::cout 3 vector capacity d1.capacity() std::endl; d1.push_back(3); std::cout 4 vector capacity d1.capacity() std::endl; return 0; }

相关新闻

最新新闻

清华求真书院预科班有学生未通过考核的处理结果

清华求真书院预科班有学生未通过考核的处理结果

关于清华大学求真书院 2026 级预科班少数学生未通过考核一事,目前公开信息主要聚焦于院方的回应与后续改革方向,‌尚未公布具体的“清退”名单或详细的行政处理文件‌。 根据清华大学求真书院院长丘成桐的回应,针对该事件的处理与后续安排主要…

2026/7/13 16:40:53
Visual C++运行库终极指南:一站式解决Windows软件兼容性问题

Visual C++运行库终极指南:一站式解决Windows软件兼容性问题

Visual C运行库终极指南:一站式解决Windows软件兼容性问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否经常遇到软件打不开、游戏闪退&…

2026/7/13 16:40:53
利用机器学习模型评估城市岗位薪资竞争力

利用机器学习模型评估城市岗位薪资竞争力

1. 为什么需要评估城市岗位薪资竞争力?当求职者面对多个城市的工作机会时,最头疼的问题往往是:"同样的前端开发岗位,深圳25k和成都18k,哪个更划算?" 这个问题背后涉及城市间生活成本、发展潜力等…

2026/7/13 16:40:53
离散数学符号表 50+ 核心符号速查:从集合论到命题逻辑的完整释义

离散数学符号表 50+ 核心符号速查:从集合论到命题逻辑的完整释义

离散数学核心符号全解:从集合论到命题逻辑的实战指南离散数学作为计算机科学的基石,其符号系统就像程序员的第二语言。第一次接触这些符号时,我完全被各种∧、∨、⊕搞得晕头转向——直到在算法课上因为误解了一个符号含义导致整个程序逻辑出…

2026/7/13 16:40:53
智能语音修复神器:VoiceFixer让受损音频重获新生

智能语音修复神器:VoiceFixer让受损音频重获新生

智能语音修复神器:VoiceFixer让受损音频重获新生 【免费下载链接】voicefixer General Speech Restoration 项目地址: https://gitcode.com/gh_mirrors/vo/voicefixer 在数字音频处理领域,语音修复技术正经历着革命性的变革。无论是历史录音的数字…

2026/7/13 16:40:53
ChatGPT写小红书文案:实测127篇笔记数据验证——这4类Prompt让点击率飙升218%

ChatGPT写小红书文案:实测127篇笔记数据验证——这4类Prompt让点击率飙升218%

更多请点击: https://intelliparadigm.com 第一章:ChatGPT写小红书文案:实测127篇笔记数据验证——这4类Prompt让点击率飙升218% 我们对127篇真实发布的小红书笔记进行了AB测试,统一使用GPT-4-turbo API(temperature0…

2026/7/13 16:35:52

月新闻