더북(TheBook)

2.9 | 연습문제

 

이 장에서 설명한 내용을 얼마나 잘 이해하고 있는지 확인할 수 있는 연습문제를 소개한다. 이해가 안 되는 부분이 있다면 앞으로 돌아가서 해당 부분을 찾아보자.

1. 피보나치 수열은 정수 0, 1, 1, 2, 3, 5, 8, 13, 21, …로 된 순차열이다. 처음 두 수를 제외하고는 바로 앞 두 수를 더한 수로 각 항목을 구한다. 람다 표현식을 사용해 array<T,N> 컨테이너를 피보나치 수열 50개로 초기화하는 프로그램을 작성하라. 컨테이너에서 원소를 출력하기 위해 작성하는 전역 함수는 한 줄에 8개씩 출력하게 하자.

2. 키보드에서 도시 이름을 원하는 만큼 읽어서 vector<T> 컨테이너에 std::string 객체로 저장하는 프로그램을 작성하라. 도시 이름을 오름차순으로 정렬하고 각 줄에 도시 이름을 차례대로 출력하라. 도시 이름은 가장 긴 이름에 맞춰 고정폭 너비로 출력한다. 각 그룹을 두문자로 묶은 이름들을 출력하고, 각 그룹은 빈 줄로 하나씩 띄운다.

3. list<T> 컨테이너를 사용해서 이전 연습문제를 반복하자. 그리고 입력 스트림 반복자를 사용하는 방법을 고쳐서 도시 이름을 읽어오게 하자. “New York”처럼 둘 이상의 단어로 된 이름도 읽어오고 저장할 수 있어야 한다(입력은 이름에 있는 공백 문자를 다른 것으로 바꿔 사용해야 할 것이다.

4. 이전 예제를 확장해서 list 컨테이너의 내용을 front inserter를 사용해 deque<T> 컨테이너로 전송하게 하자. deque 컨테이너의 내용을 정렬하고, 출력 스트림 반복자를 사용해 도시 이름을 출력해보자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.