의 벡터에 작동하지 않는 나는 다음과 같은 코드를 가지고 : 표준 : : 정렬() 쌍
struct compare {
bool operator()(const pair<size_t, double>& left, const pair<size_t, double>& right) {
return left.second > right.second;
}
};
int main() {
size_t vertices = 31112738;
vector<pair<size_t, double> > opt, one;
opt.reserve(vertices);
one.reserve(vertices);
for(size_t i=0;i<vertices;i++) {
opt[i] = make_pair(i,rand());
one[i] = make_pair(i,rand());
}
sort(opt.begin(), opt.end(), compare());
sort(one.begin(), one.end(), compare());
return 0;
}
에도 정렬 함수를 호출 한 후, [] 선택 하나는 [] 정렬되지 않습니다. 그러나 push_back()을 사용하여 요소를 삽입 한 다음 sort() 함수를 호출하면 정렬됩니다.
두 시나리오에서 결과가 다른 이유는 무엇입니까? 시나리오에서 당신이 나와 있기 때문에
'reserve'는 용량이 아니라 크기를 변경합니다. –
컴파일하고 있습니다. – user1715122
오 죄송 합니다만, 오타 ... – user1715122