0

我想从收集的数据向量(每个都有一个时间戳)中只获取比指定时间更新的元素。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() 的类型,所以我不知道如何正确返回找到的值。

4

0 回答 0