相关疑难解决方法(0)

可以使用C++ 11的'auto'来提高性能吗?

我可以看到为什么autoC++ 11中的类型提高了正确性和可维护性.我读过它也可以提高性能(Herb Sutter 几乎总是自动),但我错过了一个很好的解释.

  • 如何auto提高性能?
  • 谁能举个例子?

c++ performance auto c++11

225
推荐指数
4
解决办法
2万
查看次数

从std :: map中查找具有最大值的元素

我正在尝试从std :: map获取具有最大值的元素,

int main() {
    map<int, int> m;
    m[1] = 100;
    m[2] = -1;

    auto x = std::max_element(m.begin(), m.end(), m.value_comp());

    cout << x->first << " : " << x->second << endl;
}
Run Code Online (Sandbox Code Playgroud)

为什么它打印第二个元素2 : -1

c++ stdmap std

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

为什么"auto"不能作为lambda参数接受

为什么这段代码会产生编译错误?

std::find_if(std::begin(some_list), std::end(some_list), [](const auto& item){
//some code
});
Run Code Online (Sandbox Code Playgroud)

当然在"自动"的错误?为什么不能自动知道类型?谢谢

c++ lambda auto c++11

3
推荐指数
1
解决办法
307
查看次数

如何获得 std::unordered_map 的最大元素?

我知道如何std::map通过使用检索 a 的最大元素std::max_element,但std::unordered_map由于容器类型之间的差异,我无法使用 a 实现相同的效果。

如何找到 a 中的最大值std::unordered_map并返回相应的std::pair

显示了我当前使用 a 执行此操作的方法std::map(基于此答案)。我似乎无法弄清楚如何对std::unordered_map.

template <typename KEY_T, typename VALUE_T>
std::pair<KEY_T, VALUE_T> findMaxValuePair(
    std::map<KEY_T, VALUE_T> const &x)
{
    return *std::max_element(x.begin(), x.end(),
                             [](const std::pair<KEY_T, VALUE_T> &p1,
                                const std::pair<KEY_T, VALUE_T> &p2)
                             {
                                 return p1.second < p2.second;
                             });
}
Run Code Online (Sandbox Code Playgroud)

当我尝试在std::unorderd_map( 替换为 ) 上使用上述函数std::mapstd::unordered_map,我收到一个Segmentation fault (core dumped).

c++ unordered-map c++17

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

标签 统计

c++ ×4

auto ×2

c++11 ×2

c++17 ×1

lambda ×1

performance ×1

std ×1

stdmap ×1

unordered-map ×1