访问成对向量内的地图

Access map inside a vector of pairs

我的数据结构是:

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);

任何人都可以看到我做错了什么,因为它没有正确访问地图值吗?


您只需打印矢量中每张地图的第一对 key/value。

也许我认为您想以矢量形式打印每张地图中的所有对。

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);
    }
}