【发布时间】:2014-11-23 14:31:11
【问题描述】:
我是 C++ 初学者,我不知道也找不到解决问题的方法。
我试图以一种不寻常的方式对我的向量进行排序,但没有这样做。
pointsToVisit - 可以有开始时间和结束时间的 Point 对象列表。
visitedPoints - pointsToVisit 向量中 Point 对象的索引列表
我想按各个点的值对我的visitedPoints 向量进行排序
BeeHive
std::vector<Point> pointsToVisit;
std::vector<Route> routes;
Route
std::vector<int> visitedPoints;
我的尝试如下:
bool BeeHive::isPointsVisitStartPrior (int i, int j) { return (pointsToVisit.at(i).startTime<pointsToVisit.at(j).startTime); }
Route BeeHive::sortRouteByStartTime(int routeIndex){
Route route2 = Route();
route2.setStartTime(routes.at(routeIndex).getStartTime());
route2.setVisitedPoints(routes.at(routeIndex).getVisitedPoints());
std::sort(route2.getVisitedPoints().begin()+1, route2.getVisitedPoints().end(), isPointsVisitStartPrior);
evaluateRoute(route2);
return route2;
}
我得到这样的错误:
Error 5 error C3867: 'BeeHive::isPointsVisitStartPrior': function call missing argument list; use '&BeeHive::isPointsVisitStartPrior' to create a pointer to member c:\vrp projekt\vrp\vrp\beehive.cpp 193 1 VRP
Error 6 error C2780: 'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 3 provided c:\vrp projekt\vrp\vrp\beehive.cpp 193 1 VRP
我尝试做我的工作的例子是在这个地址下:http://www.cplusplus.com/reference/algorithm/sort/
我会感谢收到的任何帮助。
有没有可能,为我自己的目的创建冒泡排序将替代 std::sort() 体面?
【问题讨论】:
标签: c++ sorting vector compare