繁体   English   中英

如何为 Qt 中的 QMap 变量分配两个或多个值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM