用向量作为值构造一个映射

时间:2015-07-01 16:06:02

标签: c++ dictionary vector iterator

我正在尝试构建一个将字符串映射到无符号整数向量的映射。我构建这张地图的方式如下:

void PixelP1ROCDACSettings::getDACs(map<string,vector<unsigned int>>& dacs) const
{
    dacs.clear();
    dacs.insert(pair<string, vector<unsigned int> > (k_DACName_Vdd, make_vector(Vdd_, k_DACAddress_Vdd)));
    dacs.insert(pair<string, vector<unsigned int> > (k_DACName_Vana,make_vector(Vana_, k_DACAddress_Vana)));
    ...
}

make_vector的定义如下:

   std::vector<unsigned int> make_vector(unsigned int DACValue, 
                                         unsigned int DACAddress) const ;

我的问题是: 1)我想访问我的向量中的每个单独的值,我试过, dacs[key][index]但这似乎不起作用。有没有特殊的语法来做到这一点?

2)此外,我想迭代我的地图,我该怎么做?

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您使用的是c ++ 11,则可以使用

进行迭代
Item

dacs [key] [index]是访问按键映射的向量中索引元素的正确方法。