访问成对向量内的地图
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);
}
}
我的数据结构是:
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);
}
}