2010-05-24 3 views

답변

18

기본이 아닌 비교에 사용 std::sort :

float data[SIZE]; 
data[0] = ...; 
... 

std::sort(data, data + size, std::greater<float>()); 
+0

@sth - 잊어 버렸습니다. 내 대답 업데이트 ... –

+2

초보자를 위해,'std :: sort'는 STL의''헤더에 정의되어 있습니다. 물론 이것이 숙제 인 경우 자신의'sort' 함수를 구현해야합니다. – Johnsyweb

+0

@RSamuelKlatchko 코드에서 "크기"란 무엇입니까? – tmighty

1

가정하면 다음

float my_array[4]; 

당신은 너무처럼 정렬 할 수 있습니다

#include <algorithm> 

// ... in your code somewhere 
float* first(&my_array[0]); 
float* last(first + 4); 
std::sort(first, last); 

참고 두 번째 매개 변수가 (last)은 이전을 가리키고 있습니다. 네 요소 배열의 끝; 이것은 배열의 끝을 STL 알고리즘에 전달하는 올바른 방법입니다. 여기에서 전화하실 수 있습니다 :

std::reverse(first, last); 

배열 내용을 역순으로 사용하십시오. sort 루틴에 대한 사용자 지정 비교기를 작성할 수도 있지만 초보자 수준의 STL 이상의 단계라고 생각합니다. 그것은 당신에게 달려 있습니다.

+0

질문의 "내림차순"부분을 놓쳤습니다. – pmr

+0

@ pmr : 고침, 고마워. – fbrereto