gpt4 book ai didi

C++ 方法变量声明

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:23:59 29 4
gpt4 key购买 nike

目前我正在研究这个 C++ 源代码。我不是 C++ 开发人员。

void SomeClass::SomeMethod() const 
{
vector<Thing> things(count);

...
//Elements are added or replaced in things but no deallocation of things here
}

SomeMethod 被调用了很多次。任何人都可以确认没有泄漏并且 things 只分配一次,将不胜感激。

最佳答案

vector 在您每次进入函数时创建,并在它离开作用域(函数结束时)时销毁(销毁所有对象并释放所有内存)。没有泄漏,但如果您频繁调用该函数,则会有很多分配和释放。

您有 2 个解决方案可以避免这种情况:

  • (首选)使这个 vector 成为一个类字段(具有属性 mutable 以允许它被 const 方法更改),
  • 使这个 vector 成为静态变量。

关于C++ 方法变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4354282/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com