小编Win*_*Lab的帖子

向量函数的时间复杂度实际上比 u_map 更快

我无法理解逻辑。我有两个具有相同元素数的容器:vectorunordered_map

我正在使用函数来检查某些函数的时间复杂度并以毫秒为单位返回值

auto funcComplexity = [](auto&& func, auto&&... params)
{
    const auto& start = high_resolution_clock::now();
    for (auto i = 0; i < 100; ++i) 
    {
        // function invocation using perfect forwarding
        std::forward<decltype(func)>(func)(std::forward<decltype(params)>(params)...);
    }
    const auto& stop = high_resolution_clock::now();
    
    return duration_cast<duration<double, std::milli>>(stop - start).count();
};
Run Code Online (Sandbox Code Playgroud)

当我从 中间删除一个元素时vector,实际上比从 中删除元素所花费的时间更少unordered_map

void iterateUMap(std::unordered_map<int, Test> map)
{
    map.erase(500);
}

void iterateVector(std::vector<Test> vector)
{
    std::remove_if(vector.begin(), vector.end(), [](Test& val)
        {
            return val.mId == 500;
        });
}

int main()
{
    auto …
Run Code Online (Sandbox Code Playgroud)

c++ performance

0
推荐指数
1
解决办法
95
查看次数

标签 统计

c++ ×1

performance ×1