如果用getProximityIntervalRate = (req, res) => {
console.log("entered1")
this.model = ProximityLocation;
const startDate = req.headers.startdate, endDate = req.headers.enddate;
console.log(req.headers, startDate, endDate);
// TODO: server validatoin
this.model.aggregate([
{ $match: { 'observationTimestamp': { $gte: new Date(startDate), $lte: new Date(endDate) } } },
{
$project: {
regoin: 1,
lessthan: {
$cond: [{ $lt: ["$sensorValue.sensorValue", 5] }, 1, 0]
},
morethan: {
$cond: [{ $gt: ["$sensorValue.sensorValue", 5] }, 1, 0]
}
}
},
{
$group: { _id: { regoin: "$sensorValue.regoin" },
countSmaller: { $sum: "$lessThan" },
countBigger: { $sum: "$moreThan" } uh
}
},
], (err, location) => {
console.log('location', location);
if (!location) { return res.sendStatus(404); }
res.status(200).json(location);
});
}
清除了std::vector vec
,则不能立即释放分配的内存。向量的vec.clear()
将为零,但size
将/可以保持不变。
这是一种非常有益的行为,因为可以清除较大的向量并为其分配新的值,而无需进行昂贵的内存取消/分配。此外,内存也将减少碎片化。
一个人可以用capacity
shrink_to_fit来强制执行。
vec.shrink_to_fit()
具有std::map
功能,但没有clear
。 shrink_to_fit
之后存储地图所需的内存会发生什么?
cppreference.com指出map.clear()删除了容器中的所有元素。调用之后,size()返回零。
答案 0 :(得分:4)
一个人可以通过vec.shrink_to_fit()来强制执行该命令。
实际上,shrink_to_fit
不会强制释放内存。它只是允许它。允许实现不取消分配。
如果已清除std :: map,则确保已释放内存
不。保证标准容器释放内存的唯一情况是销毁它们时。
Map没有vector具有的容量概念,因此它不需要shrink_to_fit。清除后的映射与清除+收缩后适配的矢量处于相同的情况:它不需要分配任何内存...但是也不禁止分配它。