【发布时间】:2021-06-09 13:25:00
【问题描述】:
我有一个输入映射inMap,其类型为map<double, pair<int, double>>。
我正在尝试通过copy_if 过滤此地图,如下所示:
map<double, pair<int, double>> outMap;
copy_if(inMap.begin(), inMap.end(), outMap.begin(), [](pair<double, pair<int, double>> item) {return (true) ;} // I have simplified the predicate
但是,在编译时,我收到以下错误:
error: use of deleted function 'std::pair<const double, std::pair<int, double>>& std::pair<const double, std::pair<int, double>>::operator=(const std::pair<const double, std::pair<int, double>>&)
【问题讨论】:
-
你注意到这对中的
const了吗(对于关键部分)? -
您不能改变 const 对象...
std::inserter(outMap, outMap.end())可能会有所帮助。 (不确定你想要什么)