[英]How to assign two or more values to a QMap Variable in Qt
我对如何存储从 3 个不同函数分配的值并将它们存储在单个映射变量中感到困惑
QMap<QString,TrainInfo>*TimeData::PrevDayTrainMap()
{
return &prevDayTrainMap;
}
QMap<QString,TrainInfo>*TimeData::NextDayTrainMap()
{
return &nextDayTrainMap;
}
QMap<QString,TrainInfo>*TimeData::CurrentDayTrainMap()
{
return &curDayTrainMap;
}
QMap<QString,TrainInfo> TrainMap = nullptr;
if(......)
(
TrainMap = PrevDayTrainMap();
TrainMap = NextDayTrainMap();
TrainMap = CurrentDayTrainMap();
}
PrevDayTrainMap、NextDayTrainMap 和 CurrentDayTrainMap 返回一组带有 Date 和 TrainIdName 的值。我需要将 prevday、currentday 和 nextday 中的所有值存储在 TrainMap 中,但它仅将 currentday 值存储到 TrainMap,因为它是最后分配的.我不知道该怎么做才能不被覆盖。如果我应该合并,该怎么做?
您仅在地图中获得当前值的原因是您的三个分配相互覆盖:
TrainMap = PrevDayTrainMap();
TrainMap = NextDayTrainMap(); // undoes the PrevDayTrainMap()
TrainMap = CurrentDayTrainMap(); // undoes the NextDayTrainMap()
您需要将每个返回值插入到地图中:
TrainMap.insert(PrevDayTrainMap());
TrainMap.insert(NextDayTrainMap());
TrainMap.insert(CurrentDayTrainMap());
正如其他人所指出的,这仅在您的函数返回有效的地图元素时才有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.