我想从收集的数据向量(每个都有一个时间戳)中只获取比指定时间更新的元素。savedPublishedData
是我在其中查找 id 的地图。savedPublishedData.second
是一个数据向量(自定义类),每个数据是一个时间戳。
std::vector<PublisherData>&
DataModel::getSavedPublishedData(const unsigned int id, seconds newerThan)
{
auto dataIterator = savedPublishedData.find(id);
if (dataIterator == savedPublishedData.end()) {
return; //type?
}
auto timeNow = system_clock::now();
std::vector<PublisherData>& dataRawRef = dataIterator->second;
auto is_newer = [&timeNow, &newerThan](const PublisherData& pD) ->bool
{
return (pD.getTimeGenerated() + newerThan) > timeNow;
};
auto dataIsNewer = dataRawRef | std::views::filter(is_newer);
return dataIsNewer; //How to return the view?
}
我的编译器无法确定dataIsNewer
() 的类型,所以我不知道如何正确返回找到的值。