std::set
> 내부적으로 정렬된 상태를 유지
> 비교 연산(<, >, == 등)이 가능 해야함
std::ostream& operator<<(std::ostream& o, const Todo& td) {
o << "[ 중요도: " << td.priority << "] " << td.job_desc;
return
std::ostream& > 출력 스트림(std::cout)을 반환
Todo 객체를 받음
std::cout << t << std::endl;
1. o == std::cout << td.priority << td.job_desc;
> [중요도: X] Y
2. std::cout << std::end1;
주의!
bool operator<(const Todo& t) const {
if (priority == t.priority) {
return job_desc < t.job_desc;
}
return priority > t.priority;
}
A==B 와 같은 식으로 할시
if) A==B 라고 하면
: A>B : false , A<B : false
: A==B 이므로 같다고 처리함
> A(1, "안녕"), B(1,"잘가") > 서로 다름에도 불구
알고리즘 라이브러리
서술자 (Predicate): 특정한 조건
> bool 을 리턴하는 함수객체
std::remove_if(vec.begin(), vec.end(), is_odd())
> is_odd() 처럼 함수 객체 전달
struct is_odd {
bool operator()(const int& i) { return i % 2 == 1; }
};
람다함수
[capture list] (받는 인자) -> 리턴 타입 { 함수 본체 }
- [] : 캡쳐 x
- [&a, b] : a : 레퍼런스, b: (cons) 복사본으로 캡쳐
- [&] : 외부의 모든 변수들 > 레퍼런스
- [=] : 외부의 모든 변수들 > 복사본
클래스 내부에서의 변수 : 객체종속 멤버변수 > 참조 X
> [this] 로 받아옴
> this->변수명
원소수정 (Transform)
transform (시작 반복자, 끝 반복자, 결과를 저장할 컨테이너의 시작 반복자, Pred)
시작 == 결과저장 시작 : 덮어쓰기
// 공간 여유에 주의
원소탐색
find : 원소값
find_if : 참인 원소
+ any_of, all_of