【问题标题】:C++ 98 : Initializing std::tr1::unordered_mapC++ 98:初始化 std::tr1::unordered_map
【发布时间】:2017-04-13 17:30:00
【问题描述】:

如何在 C++98 中初始化 unordered_map。我在下面尝试:

1. const std::tr1::unordered_map<std::string, int> mymap = {{key1,1}};
2. const std::tr1::unordered_map<std::string, int> mymap = {std::make_pair(key1,1)};

编译器抛出错误:

C++98 ‘mymap’ must be initialized by constructor, not by ‘{...}’

我从 Stackoverflow 了解到,上面的方法是初始化列表,从 C++11 开始支持。你能告诉我如何初始化 mymap 吗?我正在考虑的一种方法是将一对一对插入到 mymap 中。

【问题讨论】:

    标签: unordered-map c++98 tr1


    【解决方案1】:

    在 C++98 中,您不能在声明地图时对其进行初始化。您只能将每一对作为单独的语句插入:

    std::tr1::unordered_map<std::string, int> mymap;
    mymap.insert(std::make_pair(key1,1));
    

    【讨论】:

    • 我想到了这个。有的话找其他方法。
    • 没有。如果你想让地图保持不变并且必须使用C++98,你可以有一个地图创建函数,返回你想要的地图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2021-10-03
    • 2020-12-03
    相关资源
    最近更新 更多