[C++] CPP-Module-00

dandb3·2023년 7월 3일
0

C++

목록 보기
1/3

알아야 할 함수들

std::vector::vector

  • 프로토 타입
    template <class InputIterator> vector (InputIterator first, InputIterator last, const allocator_type& alloc = allocator_type());
  • 대상 컨테이너에 iterator 범위만큼 vector를 할당해주고, 각 원소를 iterator가 가리키는 컨테이너의 원소로 초기화 한다.

std::for_each

  • 프로토 타입
    template <class InputIterator, class Function> Function for_each (InputIterator first, InputIterator last, Function fn);
  • iterator를 돌면서 iterator가 가리키는 인자를 매개변수로 해서 함수 fn을 호출한다.

std::mem_fun_ref

  • 프로토 타입
    은 너무 길어서 적지 않는다...
  • 대신 예시 코드
    std::for_each( acc_begin, acc_end, std::mem_fun_ref( &Account::displayStatus ) );
  • 멤버함수를 일반 함수 객체로 바꾸어 주는 역할..? 인듯.
  • 원래는, x.f(); 꼴인 멤버 함수를 f(x)꼴로 바꾸어 준다.
  • 특히, 예시 코드에 있는 것과 같이 for_each 함수의 경우 iterator가 가리키는 원소를 매개변수로 하여 fn을 호출하는데, 그냥 &Account::displayStatus를 쓰게 되면 컴파일 에러가 발생. (실제 함수에는 매개변수가 없으므로)

std::mem_fun

  • std::mem_fun_ref 와 동일, 대신에 iterator가 가리키는 대상이 클래스의 객체가 아닌 포인터일 경우에 사용한다.
  • 즉, x->f()꼴인 멤버 함수를 f(x)꼴로 바꾸어 준다.

참고 자료

profile
공부 내용 저장소

0개의 댓글