일상 코딩
[C++/9.04] 비교 연산자 오버로딩 본문
728x90
※ 비교 연산자 오버로딩시 주의점.
return 문 안에서
오름차순은 "<"으로 해주고,
내림차순은 ">"으로
#include <iostream>
#include <vector>
#include <algorithm>
#include <random>
using namespace std;
class Cents
{
private:
int m_cents;
public:
Cents(int cents = 0) { m_cents = cents; }
int getCents() const { return m_cents; }
int &getCents() { return m_cents; }
friend bool operator < (const Cents &c1, const Cents &c2)
{
return c1.m_cents < c2.m_cents;
}
friend std::ostream &operator << (std::ostream &out, const Cents ¢s)
{
out << cents.m_cents;
return out;
}
};
int main()
{
vector<Cents> arr(20);
for (unsigned i = 0; i < 20; ++i)
arr[i].getCents() = i;
// C++17 이후 random은 이렇게 구현한다.
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(arr.begin(), arr.end(), g);
for (auto &e : arr)
cout << e << " ";
cout << endl;
// sorting
std::sort(arr.begin(), arr.end());
for (auto &e : arr)
cout << e << " ";
cout << endl;
}
728x90
'C++ > 따배C++ 09강 연산자 오버로딩' 카테고리의 다른 글
[C++/9.06] 첨자"[]" 연산자 오버로딩 (0) | 2021.10.30 |
---|---|
[C++/9.05] 증감 연산자 오버로딩 (0) | 2021.10.29 |
[C++/9.03] 단항 연산자 오버로딩 (0) | 2021.10.28 |
[C++/9.02] 클래스 입출력 연산자 오버로딩 (0) | 2021.10.28 |
[C++/9.01] 산술 연산자 오버로딩 (0) | 2021.10.26 |