为什么这段代码被静态分析工具标记为存在性能问题?

问题描述 投票:0回答:1

我在某些代码上运行 cppcheck 工具,它报告我某些代码中存在性能问题,在插入新地图之前验证地图没有值。

我将代码隔离在 MCVE 片段中:

std::map<int, float*> myMap;
myMap[1] = new float(3.0f);

for ( size_t pos = 0; pos != 10; ++pos )
{
    if ( myMap.find( pos ) == myMap.end() )
    {
        myMap[pos] = new float(4.0f);
    }
}

CppCheck 报告

(performance,ID=stlFindInsert) Searching before insertion is not necessary.

实际上,有必要通过用新值替换旧值来防止泄漏...顺便说一句,如果有旧值,您可能不想替换...

我应该如何更好地编写代码来防止这种性能问题?

c++ cppcheck
1个回答
0
投票

所写的代码对我来说看起来很好。

© www.soinside.com 2019 - 2024. All rights reserved.