반응형

벡터 구조체 필드 기준으로 최대값 최소값 찾기


#include <algorithm>

#include <vector>


typedef struct _A {

double x ;

double y ;

} A ;


bool compareA(const A& a1, const A&a2) {

// 앞에 있는 노드의 x값이 더 작게 소팅한다.

return a1.x < a2.x ;

}



std::vector<A> alist ;

A tmp ;

tmp.x = 10 ;

tmp.y = 70 ;

alist.push_back(tmp) ;

tmp.x = 5 ;

tmp.y = 60 ;

alist.push_back(tmp) ;

tmp.x = 3 ;

tmp.y = 50 ;

alist.push_back(tmp) ;

tmp.x = 8 ;

tmp.y = 80 ;

alist.push_back(tmp) ;


A mina = *std::min_element(alist.begin(), alist.end(), compareA) ;

A maxa = *std::max_element(alist.begin(), alist.end(), compareA) ;

// 이터레이터를 리턴하므로 *를 붙여 객체값을 얻어온다. 


printf("mina %lf %lf \n", mina.x, mina.y) ;

printf("maxa %lf %lf \n", maxa.x, maxa.y) ;


mina 3.000000 50.000000 
maxa 10.000000 70.000000 




+ Recent posts