构造以向量为值的映射
Constructing a Map With Vectors as Values
我正试图构建一个映射,将字符串映射到无符号整数的向量。我构建这张地图的方式如下:
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) 此外,我想在我的地图上迭代,我该怎么做?
提前谢谢。
如果您使用的是c++11,则可以使用进行迭代
for (auto& keyvaluepair : dacs) {
//keyvaluepair.first is your string
//keyvaluepair.second is your vector
}
dacs[key][index]也是访问key映射到的向量中indexth元素的正确方法。
相关文章:
- 如何在 c++ 中创建结构向量的映射
- 在C++中初始化向量映射的最有效方法
- C++ STD 函数运算符:有没有一种方法可以通过函数将一个向量映射到另一个向量上?
- 字符串共享内存映射的向量
- 具有 2 个分量的数组的特征映射到 3 的向量
- 当键值是 std 向量时,为什么使用 at in C++ 访问映射值如此缓慢?
- 当映射包含字符串向量作为值时,从值中获取键的有效方法
- 如何初始化 std::向量的映射?
- 访问映射中的分区向量
- 如何将整数向量插入到键中,标准::映射的值
- 将一个向量映射到不同的对,即使向量映射到每对时是不同的?
- 如何从向量映射中迭代向量
- 访问映射向量的映射元素(c++)
- 映射向量的时间复杂性是多少
- C++:通过从映射向量分配映射实例来填充映射的映射
- 在一个映射向量上迭代,如果满足条件,则插入一个副本
- 如何在映射向量中循环访问地图
- 丢弃限定符 访问类中的映射向量时出错
- 从常量迭代器到映射向量,获取映射向量中映射元素的键和值
- 映射向量c++