在编译时将std :: map的所选元素初始化为相同的值

时间:2015-09-17 23:34:08

标签: c++ static-initialization

假设我有以下代码:

#include <bits/stdc++.h>

using namespace std;

class SomeClass {
   private:
    const static map<int, int> some_map;
};

const map<int, int> SomeClass::some_map = {
    {1, 2},
    {3, 2},
    {4, 2},
    {10, 3},
    {11, 3},
    {12, 3},
    {15, 9}
};

如您所见,我将地图的几个键初始化为相同的值。

是否可以用更短的语法表达相同的内容(例如:{1,3,4->2})?这只是一个简短的例子,但实际上我有很多具有相同值的键,并希望快速检索这个值。

1 个答案:

答案 0 :(得分:1)

所需的语法{1,3,4->2}看起来像一个集合+值对。您可以使用向量而不是集合。然后将初始化数据定义为此类对的向量,并添加一勺代码以从中初始化地图。