在对矢量内访问地图

时间:2015-08-04 21:41:15

标签: c++ vector iterator maps

我有一个数据结构:

vector<pair<map<unsigned char, unsigned char>,unsigned short>>

我正在尝试访问地图并打印其第一个和第二个元素,但我无法正确访问它。

这是我到目前为止所拥有的:

auto dataSetMapIt = vLpatDataSet[i].first.begin();
fwrite(&dataSetMapIt->first, sizeof(dataSetMapIt->first), 1, filePtr);
fwrite(&dataSetMapIt->second, sizeof(dataSetMapIt->second), 1, filePtr);

任何人都可以看到我做错了它不能正确访问地图值吗?

1 个答案:

答案 0 :(得分:0)


您只需在矢量中打印每个地图的第一个键/值对。

也许我认为你想要在矢量中的每个地图中打印所有对。

for (int i = 0; i < vLpatDataSet.size(); ++i)
{
    const map < unsigned char, unsigned char>& mapInVector = vLpatDataSet[i].first;
    for (auto keyValuePair : mapInVector)
    {
        fwrite(&keyValuePair.first, sizeof(keyValuePair.first), 1, filePtr);
        fwrite(&keyValuePair.second, sizeof(keyValuePair.second), 1, filePtr);
    }
}