음악, 삶, 개발
std::sort 를 나의 Class 객체에 사용하기 본문
vector 가 내가 만든 클래스를 객체로 가지는 경우가 자주 발생한다.
std::sort(begin(), end()) 를 사용하여 나의 vector 를 sort 하고자할수있다.
이를 위해서는 나의 클래스 내부에 연산자 < 가 오버로딩되어야한다.
예제 코드
class MyClass {
public:
MyClass(int n) : number(n) {}
int getNumber() const {
return number;
}
bool operator< (const MyClass& other) const {
return number < other.number;
}
private:
int number;
};
int main () {
std::vector<MyClass> myClasses {10, 5, 1};
std::sort(myClasses.begin(), myClasses.end());
for (const auto& myClass : myClasses) {
std::cout << myClass.getNumber() << std::endl; // 1 5 10
}
return 0;
}