相关疑难解决方法(0)

为什么C++程序员应该尽量减少"新"的使用?

在使用std :: list <std :: string>时偶然发现Stack Overflow问题内存泄漏与std :: string,其中一条评论说:

停止使用new这么多.我看不出你在任何地方使用新的任何理由.您可以使用C++中的值创建对象,这是使用该语言的巨大优势之一.您不必在堆上分配所有内容.不要像Java程序员那样思考.

我不太确定他的意思是什么.为什么要尽可能经常地用C++中的值创建对象,它在内部有什么区别?我误解了答案吗?

c++ heap memory-management c++-faq new-operator

833
推荐指数
13
解决办法
12万
查看次数

什么是内存碎片?

我听说在C++动态内存分配的上下文中使用了几次"内存碎片"这个术语.我发现了一些关于如何处理内存碎片的问题,但找不到直接处理它本身的问题.所以:

  • 什么是内存碎片?
  • 如何判断内存碎片是否对我的应用程序有问题?什么样的计划最容易受到影响?
  • 处理内存碎片的常用方法有哪些?

也:

  • 我听说使用动态分配可以增加内存碎片.这是真的?在C++的上下文中,我理解所有标准容器(std :: string,std :: vector等)都使用动态内存分配.如果在整个程序中使用它们(特别是std :: string),内存碎片更可能是一个问题吗?
  • 如何在STL繁重的应用程序中处理内存碎片?

c++ memory heap fragmentation

190
推荐指数
7
解决办法
7万
查看次数

在std :: string的上下文中首字母缩略词SSO的含义

关于优化和代码风格的C++问题中,在优化副本的上下文中,有几个答案提到了"SSO" std::string.在这种情况下,SSO意味着什么?

显然不是"单点登录"."共享字符串优化",或许?

c++ string optimization

141
推荐指数
3
解决办法
2万
查看次数