더북(TheBook)

1.5.3 연습 문제 3: 연결 리스트에서 remove_if() 함수를 이용한 조건부 원소 삭제

이번 연습 문제에서는 선거 기간에 일부 시민들의 정보를 이용하여 선거권이 없는 사람을 가려내려고 합니다. 편의상 시민 정보는 이름과 나이만을 사용하겠습니다.

연결 리스트를 사용하여 데이터를 저장하고, remove_if() 함수를 사용하여 특정 원소를 제거할 것입니다. remove_if() 함수는 삭제할 원소 위치를 명시적으로 지정하는 것이 아니라 특정 조건에 해당하는 원소를 선별적으로 삭제할 때 사용합니다.

  1. 먼저 필요한 헤더 파일을 포함시키고, citizen 구조체를 정의합니다.

#include <string>
#include <iostream>
#include <forward_list>

struct citizen
{
    std::string name;
    int age;
};

std::ostream &operator<<(std::ostream &os, const citizen &c)
{
    return (os << "[" << c.name << ", " << c.age << "]");
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.