我正在尝试将带有ord
的向量ord.size() = 100
从第二个元素排序到结尾:
sort(ord.begin() + 1, ord.end(), comp);
但是功能comp()
获得ord[101]
。的为什么吗
comp
列表:
bool comp(long long i, long long j){
cout << i << " " << j << endl;
return ((long long)x[i]-minx)*(y[j]-y[i]) <= ((long long)y[i]-minx_y)*(x[j]-x[i]);
}
comp
输出的一部分:http://i.stack.imgur.com/bAaUq.png
答案 0 :(得分:0)
#include <vector>
#include <algorithm>
bool comp(long long i, long long j){
std::cout << i << " " << j << std::endl;
return i < j;
}
int main(int argc, const char * argv[]) {
std::vector<long long int> ord;
ord.reserve(100);
for(int i = 0; i < 100; ++i){
ord.push_back( 101 - i );
}
std::sort(ord.begin() + 1, ord.end(), comp);
return 0;
}
对我来说很好。我知道它不是您的确切代码,但仍然是。