많은 수의 픽셀을 정렬하려고합니다.매우 큰 사용자 정의 형식의 벡터를 정렬하는 방법
typedef char HexGetal;
typedef unsigned int NatuurlijkGetal;
struct Pixel{
HexGetal Blue;
HexGetal Green;
HexGetal Red;
};
struct Palet{
Pixel Kleur;
NatuurlijkGetal Aantal;
};
vector <Palet> MyContainer;
NatuurlijkGetal Seeds[10]={1, 25, 55, 7, 3, 149, 6, 7, 1, 55};
Palet LoopPalet;
LoopPalet.Kleur.Blue = 0;
LoopPalet.Kleur.Green = 0;
LoopPalet.Kleur.Red = 0;
for(NatuurlijkGetal Looper = 0; Looper < 10;Looper++)
{
LoopPalet.Aantal = Seeds[Looper];
MyContainer.push_back(LoopPalet);
}
"Palet"유형을 만든 후 "MyContainer"라는 Palet의 벡터를 만들고 초기화합니다.
이제 "Aantal"필드를 기준으로 정렬하고 싶습니다. 어떻게하면됩니까? 아마 2 가지 다른 방법을 찾고 있습니다.
파트 1 : 벡터가 작을 때이 작업을 수행하는 일반적인 방법을 배우고 싶습니다. 나는 결코 벡터를 분류하지 않았다. 그것에 대해 많이 읽고 비디오를 보았지만, 나는 그것을 얻지 못하고 있습니다.
파트 2 : 이 벡터는 사용될 때 나중에 100 만 개가 넘는 요소를 갖습니다. 복사 작업의 양을 제한하기 위해 더 똑똑한 접근이 필요합니다. 사전에
는들으.
맞춤형 비교기로'std :: sort'를 시도하십시오. 너무 느린 것으로 측정되면 다른 것을 조사하십시오. – chris
나는 게시하기 전에 std :: sort를 시도했으나 작동하지 못했습니다.이 경우 사용자 지정 비교기가 어떻게 생겼는지 모르기 때문입니다. 내가 전에 그런 일을 한적 없다고 말했어. –