음악, 삶, 개발

std::sort 를 나의 Class 객체에 사용하기 본문

개발 공부/C++ 약점공략

std::sort 를 나의 Class 객체에 사용하기

Lee_____ 2020. 10. 19. 20:35

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;
}