本文整理汇总了C++中SearchPointVector::emplace_back方法的典型用法代码示例。如果您正苦于以下问题:C++ SearchPointVector::emplace_back方法的具体用法?C++ SearchPointVector::emplace_back怎么用?C++ SearchPointVector::emplace_back使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SearchPointVector
的用法示例。
在下文中一共展示了SearchPointVector::emplace_back方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ApplyHandicap
ContestResult
OLCSISAT::CalculateResult(const ContestTraceVector &solution) const
{
// build convex hull from solution
SearchPointVector spv;
for (unsigned i = 0; i < num_stages; ++i)
spv.emplace_back(solution[i].location);
spv.PruneInterior();
// now add leg distances making up the convex hull
double G = 0;
if (spv.size() > 1) {
for (unsigned i = 0; i + 1 < spv.size(); ++i)
G += spv[i].DistanceTo(spv[i + 1].GetLocation());
// closing leg (end to start)
G += spv[spv.size() - 1].DistanceTo(spv[0].GetLocation());
}
// R distance (start to end)
const auto R = solution[0].DistanceTo(solution[num_stages - 1].GetLocation());
// V zigzag-free distance
const auto V = G - R;
// S = total distance
ContestResult result = ContestDijkstra::CalculateResult(solution);
result.score = ApplyHandicap((V + 3 * result.distance) / 4000);
return result;
}