Programming: Principles and Practice Using C++ (Second Edition) 한국어판
- 원서명Programming: Principles and Practice Using C++ (2nd Edition) (ISBN 9780321992789)
- 지은이비야네 스트롭스트룹(Bjarne Stroustrup)
- 옮긴이최광민
- ISBN : 9788960777866
- 60,000원
- 2015년 11월 30일 펴냄
- 페이퍼백 | 1,300쪽 | 188*255mm
- 시리즈 : 프로그래밍 언어
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://www.stroustrup.com/Programming/Solutions/exercise_solutions.html
요약
C++ 창시자가 전해주는 프로그래밍의 이상과 원리!
‘오래가는 프로그래머’, ‘존경받는 프로그래머’가 되고 싶다면 초보 프로그래머에서 익숙한 개발자까지 누구나 곁에 두고 읽어야 할 필독서다. 실용적인 예제를 바탕으로 C++의 기본적인 문법은 물론, 구조적 프로그래밍과 객체 지향 프로그래밍, 제네릭 프로그래밍을 비롯해 현대적인 프로그래밍 언어를 관통하는 프로그래밍 패러다임의 진수를 체득할 수 있다!
이 책에서 다루는 내용
실전 프로그래밍을 위한 준비 운동
소프트웨어 개발을 비롯한 기술적인 분야의 복잡한 프로그램을 작성할 수 있다!
기본적인 개념과 기법 완벽 마스터
기본적인 개념과 기법을 다른 입문서보다 심도 있게 다룸으로써 유용하고 정확하며, 유지 보수가 쉽고 효율적인 코드를 작성할 수 있다.
최신 C++(C++11과 C++14)를 이용한 프로그래밍
객체 지향 프로그래밍과 제네릭 프로그래밍을 비롯한 일반적인 프로그래밍 입문서이자, 전 세계의 소프트웨어에서 가장 널리 사용하는 언어 중 하나인 C++ 프로그래밍 언어의 기초를 확고히 다질 수 있다. 더불어 현대적인 C++ 프로그래밍 기법은 물론, C++ 표준 라이브러리와 프로그래밍을 쉽게 만들어 주는 C++11과 C++14의 기능을 체득한다.
초보자는 물론 새로운 무언가를 배우고자 하는 모두를 위한 책
프로그래밍 경험이 전혀 없는 사람을 고려해 설계한 책으로, 수년간 수천 명의 대학 신입생을 대상으로 그 효과가 입증됐으며, 자습용으로도 널리 사용되고 있다. 더 나아가 많은 실무자와 우수한 학생에게 고수의 비법을 전수함으로써 새로운 깨달음을 얻게 한다.
폭넓은 시야로 배우는 프로그래밍
책의 전반부에서는 광범위한 기본 개념과 설계 기법, 프로그래밍 기법, 언어의 기능, 라이브러리를 설명함으로써 입력과 출력, 계산, 간단한 그래픽을 이용한 프로그램을 작성할 수 있게 해준다. 책의 후반부에서는 특화된 주제(텍스트 처리와 출력, 계산, C 프로그래밍 언어 등)를 다루며, 풍부한 참고 자료를 제공한다. 소스코드를 비롯한 독자 지원은 저자의 홈페이지에서 찾을 수 있다.
이 책의 대상 독자
학생들에게 전하는 말
지금까지 우리가 텍사스 A&M 대학교에서 이 책으로 가르쳤던 1학년 학생의 60%가 예전에 프로그래밍을 했던 경험이 있었고, 나머지 40%는 태어나서 단 한 줄의 코드도 본 적이 없었다. 그래도 대부분의 학생들이 성공적으로 수업을 마쳤고, 여러분도 할 수 있으리라 믿는다.
이 책을 꼭 수업용 교재로 읽을 필요는 없으며, 자습용 교재로도 많이 쓰인다. 하지만 이 책으로 수업을 듣든 혼자 공부하든 상관없이 누군가와 함께 공부하길 바란다. 프로그래밍은 외롭게 혼자 하는 작업이 아니다. 대부분의 사람들은 같은 목표를 공유하는 그룹의 일원일 때 더 효율적으로 일하고, 더 빨리 배운다. 친구와 함께 배우고, 문제에 대해 토론하는 일은 단순한 잡담이 아니라, 우리를 진일보시키는 가장 효율적이고 즐거운 방법이다. 친구와 함께 일하려면 적어도 여러분의 생각을 명확하게 표현해야 하고, 이는 여러분이 얼마나 잘 이해하고 기억하는지를 시험할 수 있는 최고의 방법이다. 여러분 스스로 모든 모호한 점과 프로그래밍 환경의 문제를 해결해야 할 필요는 없지만, 설사 교사가 시키지 않더라도 실습문제를 건너 뛰거나 충분한 연습문제를 풀지 않음으로써 여러분 스스로를 속이지 말자. 다른 분야와 마찬가지로 프로그래밍을 익히려면 연습이 필요하다는 점을 명심하자. 코드를 직접 작성하지 않으면 이 책을 읽는 일은 그저 무의미한 이론 공부에 불과하다.
대부분의 학생들이 , 특히 사려가 깊은 학생일수록 이렇게 열심히 공부할 만한 가치가 있는지 의구심이 들 수 있다. 그럴 때는 잠시 쉬었다가 지금 이 ‘들어가며’를 다시 읽고, 1장(‘컴퓨터, 사람, 프로그래밍’)과 22장(‘프로그래밍의 이상과 역사’)을 살펴보자. 그 곳에서 내가 발견한 프로그래밍의 흥미로운 점과 프로그래밍을 바탕으로 세상에 긍정적인 공헌을 할 수 있다고 생각하는 이유를 밝힌다. 나의 교육 철학과 접근 방식이 궁금하다면 0장(‘독자에게 전하는 글’)을 참고하라.
이 책이 너무 두껍다고 겁먹지 말자. 이 책이 두꺼워진 주요 이유는 내가 학생들이 필요한 부분의 설명만 찾게 하기보다, 반복적으로 설명하고 예제를 추가하는 방식을 선호하기 때문이다. 두 번째 이유는 책의 뒤쪽 절반 정도는 임베디드 시스템 프로그래밍과 텍스트 분석, 수치 계산 등 여러분이 관심 있는 분야에 대해 찾아볼 수 있는 참고 자료나 추가 자료로 구성했기 때문이다.
마지막으로, 너무 성급하지 말라. 새롭고 가치 있는 기술을 배우는 일은 언제나 시간을 요하며, 그럴 만한 가치가 있는 법이다.
교사에게 전하는 말
이 책은 전형적인 컴퓨터 과학 101 수업(개론 수업) 교재가 아니라, 실제로 작동하는 소프트웨어를 개발하는 방법을 주로 다룬다. 따라서 보통 컴퓨터 과학 학생들이 배우는 내용(튜링 완전성(turing completeness), 상태 기계(state machine), 이산 수학(discrete mathmatics), 촘스키 그래머(Chomsky grammars) 등)을 다루지 않는다. 학생들이 유치원 때부터 컴퓨터를 다양한 곳에 활용해봤다는 가정하에 하드웨어(hardware)에 대해서도 설명하지 않는다. 컴퓨터 과학에 있어 가장 중요한 주제들도 되도록 언급하지 않는다. 이 책은 오직 프로그래밍(소프트웨어를 개발하는 방법)만을 다룬다. 따라서 전통적인 수업 과정에서 다루는 내용보다 좁은 주제에 집중한다. 컴퓨터 과학은 수업 한 번으로 배울 수 없으므로 여기서는 오직 한 가지, 프로그래밍을 잘 하는 데 집중할 것이다. 이 책을 컴퓨터 과학이나 컴퓨터 공학, 전자 공학(1학년 학생 중엔 전자 공학도가 많다), 정보 과학 등의 교과 과정에서 채택한다면 다른 수업과 겸해서 개론 수업의 일부로 활용하길 바란다.
0장(‘독자에게 전하는 글’)에서 나의 교육 철학과 일반적인 접근방식을 알 수 있는데, 학생들이 그러한 생각에 따라 공부할 수 있게 전해주기 바란다.
이 책의 구성
1부. '기본 다지기'
에서는 C++ 언어를 이용한 프로그래밍의 기본 개념들과 기법을 살펴보고 코드 작성을 시작하는 데 필요한 라이브러리의 기능을 알아본다. 여기에는 타입 시스템(type system)과 산술 연산, 제어 구조, 오류 처리, 설계와 구현, 함수(function) 사용법, 사용자 정의 타입(user-defined type) 등을 다룬다.2부. '입력과 출력'
에서는 키보드와 파일로부터 문자나 숫자 입력을 받고, 그에 상응하는 출력을 모니터나 파일에 내보내는 방법을 설명한다. 그리고 수치 데이터와 텍스트, 기하학적 도형을 시각적으로 출력하고, 그래픽 사용자 인터페이스GUI를 바탕으로 입력을 받아들이는 방법을 살펴본다.3부. '데이터와 알고리즘'
에서는 C++ 표준 라이브러리에 포함된 컨테이너와 알고리즘 프레임 워크인 표준 템플릿 라이브러리(STL, Standard Template Library)에 초점을 맞춘다. 컨테이너(vector, list, map 등)의 사용법과 내부 구현 방식(포인터 활용, 배열, 동적 메모리, 예외, 템플릿)을 살펴본다. 그리고 표준 라이브러리의 알고리즘(sort, find, inner_product 등) 설계와 사용법을 보여준다.4부. '시야 넓히기'
에서는 프로그래밍의 이상과 역사, 여러 가지 응용 예(행렬 계산, 텍스트 조작, 테스트, 임베디드 시스템 프로그래밍 등)와 C 언어의 개요를 바탕으로 프로그래밍을 여러 각도에서 살펴본다.부록
에서는 C++ 언어 자체에 대한 요약과 표준 라이브러리의 기능, 통합 개발 환경(IDE, Integrated Development Environment)과 그래픽 사용자 인터페이스 라이브러리 사용법 등 수업 시간에 다루기 적절하지 않은 유용한 정보를 제공한다.상세페이지
목차
목차
- 0장 독자에게 전하는 글
- 0.1 이 책의 구성
- 0.2 나의 교육 철학
- 0.3 프로그래밍과 컴퓨터 과학
- 0.4 창의성과 문제 해결
- 0.5 독자 의견
- 0.6 참고 자료
- 0.7 지은이 소개
- 1장 컴퓨터, 사람, 프로그래밍
- 1.1 소개
- 1.2 소프트웨어
- 1.3 사람
- 1.4 컴퓨터 과학
- 1.5 컴퓨터의 광범위한 쓰임새
- 1.6 프로그래머의 이상
- 1부 기본 다지기
- 2장 Hello, World!
- 2.1 프로그램
- 2.2 고전적인 첫 번째 프로그램
- 2.3 컴파일 과정
- 2.4 링크 과정
- 2.5 프로그래밍 환경
- 3장 객체, 타입, 값
- 3.1 입력
- 3.2 변수
- 3.3 입력과 타입
- 3.4 연산과 연산자
- 3.5 대입과 초기화
- 3.6 복합 대입 연산자
- 3.7 이름
- 3.8 타입과 객체
- 3.9 타입 안전성
- 4장 계산
- 4.1 계산
- 4.2 목적과 도구
- 4.3 표현식
- 4.4 구문
- 4.5 함수
- 4.6 vector
- 4.7 언어 기능
- 5장 오류
- 5.1 소개
- 5.2 오류의 원인
- 5.3 컴파일 시간 오류
- 5.4 링크 시간 오류
- 5.5 실행 시간 오류
- 5.6 예외
- 5.7 논리 오류
- 5.8 평가
- 5.9 디버깅
- 5.10 사전 조건과 사후 조건
- 5.11 테스팅
- 6장 프로그램 작성
- 6.1 문제
- 6.2 문제 고찰
- 6.3 계산기로 복귀!
- 6.4 문법
- 6.5 문법에서 코드로
- 6.6 첫 번째 버전 시도
- 6.7 두 번째 버전 시도
- 6.8 토큰 스트림
- 6.9 프로그램 구조
- 7장 프로그램 완성
- 7.1 소개
- 7.2 입력과 출력
- 7.3 오류 처리
- 7.4 음수
- 7.5 나머지: %
- 7.6 코드 정리
- 7.7 오류 복구
- 7.8 변수
- 8장 언어적 세부 사항: 함수 등
- 8.1 언어의 기술적 세부 사항
- 8.2 선언과 정의
- 8.3 헤더 파일
- 8.4 유효 범위
- 8.5 함수 호출과 반환
- 8.6 평가 순서
- 8.7 네임스페이스
- 9장 언어적 세부 사항: 클래스 등
- 9.1 사용자 정의 타입
- 9.2 클래스와 멤버
- 9.3 인터페이스와 구현
- 9.4 클래스로의 진화
- 9.5 열거형
- 9.6 연산자 오버로딩
- 9.7 클래스 인터페이스
- 9.8 Date 클래스
- 2부 입력과 출력
- 10장 입출력 스트림
- 10.1 입력과 출력
- 10.2 입출력 스트림 모델
- 10.3 파일
- 10.4 파일 열기
- 10.5 파일 읽고 쓰기
- 10.6 입출력 오류 처리
- 10.7 값 한 개 읽기
- 10.8 사용자 정의 출력 연산자
- 10.9 사용자 정의 입력 연산자
- 10.10 표준 입력 루프
- 10.11 구조화된 파일 읽기
- 11장 입출력 맞춤화
- 11.1 정규성과 비정규성
- 11.2 출력 형식화
- 11.3 파일 열기와 위치 지정
- 11.4 문자열 스트림
- 11.5 행 지향 입력
- 11.6 문자 분류
- 11.7 비표준 구분자 사용
- 11.8 기타 훨씬 더 많은 것
- 12장 디스플레이 모델
- 12.1 왜 그래픽스인가?
- 12.2 디스플레이 모델
- 12.3 첫 번째 예제
- 12.4 GUI 라이브러리 사용
- 12.5 좌표
- 12.6 도형
- 12.7 Shape 사용
- 12.8 프로그램 실행
- 13장 그래픽스 클래스
- 13.1 그래픽스 클래스의 개요
- 13.2 Point와 Line
- 13.3 Lines
- 13.4 Color
- 13.5 Line_style
- 13.6 Open_polyline
- 13.7 Closed_polyline
- 13.8 Polygon
- 13.9 Rectangle
- 13.10 명명하지 않은 객체 관리
- 13.11 Text
- 13.12 Circle
- 13.13 Ellipse
- 13.14 Marked_polyline
- 13.15 Marks
- 13.16 Mark
- 13.17 Image
- 14장 그래픽스 클래스 설계
- 14.1 설계 원칙
- 14.2 Shape
- 14.3 기반 클래스와 파생 클래스
- 14.4 객체 지향 프로그래밍의 이점
- 15장 함수와 데이터의 그래프 그리기
- 15.1 소개
- 15.2 간단한 함수의 그래프 그리기
- 15.3 Function
- 15.4 Axis
- 15.5 근사치
- 15.6 데이터의 그래프 그리기
- 16장 그래픽 사용자 인터페이스
- 16.1 사용자 인터페이스 방식
- 16.2 Next 버튼
- 16.3 간단한 윈도우
- 16.4 Button과 기타 Widget
- 16.5 예제
- 16.6 제어 반전
- 16.7 메뉴 추가
- 16.8 GUI 코드 디버깅
- 3부 데이터와 알고리즘
- 17장 벡터와 자유 저장 영역
- 17.1 소개
- 17.2 벡터의 기본
- 17.3 메모리와 주소, 포인터
- 17.4 자유 저장 영역과 포인터
- 17.5 소멸자
- 17.6 요소에 접근
- 17.7 클래스 객체를 가리키는 포인터
- 17.8 타입 다루기: void*와 캐스트
- 17.9 포인터와 참조
- 17.10 this 포인터
- 18장 벡터와 배열
- 18.1 소개
- 18.2 초기화
- 18.3 복사
- 18.4 필수적인 연산
- 18.5 vector 요소에 접근
- 18.6 배열
- 18.7 예제: 회문
- 19장 벡터, 템플릿, 예외
- 19.1 문제 정의
- 19.2 크기 변경
- 19.3 템플릿
- 19.4 구간 검사와 예외
- 19.5 자원과 예외
- 20장 컨테이너와 반복자
- 20.1 데이터 저장과 처리
- 20.2 STL의 이상
- 20.3 시퀀스와 반복자
- 20.4 연결 리스트
- 20.5 다시 보는 vector 일반화
- 20.6 예제: 간단한 텍스트 편집기
- 20.7 vector와 list, string
- 20.8 우리가 만든 vector를 STL에 비슷하게 만들기
- 20.9 내장형 배열을 STL에 접목
- 20.10 컨테이너 요약
- 21장 알고리즘과 맵
- 21.1 표준 라이브러리 알고리즘
- 21.2 가장 간단한 알고리즘: find()
- 21.3 범용적인 검색 : find_if()
- 21.4 함수 객체
- 21.5 수치 알고리즘
- 21.6 연관 컨테이너
- 21.7 복사
- 21.8 정렬과 검색
- 21.9 컨테이너 알고리즘
- 4부 시야 넓히기
- 22장 프로그래밍의 이상과 역사
- 22.1 역사와 이상, 프로 정신
- 22.2 간략히 살펴보는 프로그래밍 언어의 역사
- 23장 텍스트 조작
- 23.1 텍스트
- 23.2 문자열
- 23.3 입출력 스트림
- 23.4 맵
- 23.5 문제 제기
- 23.6 정규 표현식
- 23.7 정규 표현식을 이용한 검색
- 23.8 정규 표현식 문법
- 23.9 정규 표현식 매칭
- 23.10 참고 자료
- 24장 수치 계산
- 24.1 소개
- 24.2 크기와 정밀도, 오버플로
- 24.3 배열
- 24.4 C 스타일 다차원 배열
- 24.5 Matrix 라이브러리
- 24.6 예제: 선형 방정식 풀기
- 24.7 난수
- 24.8 표준 수학 함수
- 24.9 복소수
- 24.10 참고 자료
- 25장 임베디드 시스템 프로그래밍
- 25.1 임베디드 시스템
- 25.2 기본적인 개념
- 25.3 메모리 관리
- 25.4 주소와 포인터, 배열
- 25.5 비트, 바이트, 워드
- 25.6 코딩 표준
- 26장 테스팅
- 26.1 우리의 목적
- 26.2 증명
- 26.3 테스팅
- 26.4 테스팅을 쉽게 해주는 설계
- 26.5 디버깅
- 26.6 성능
- 26.7 참고 자료
- 27장 C 프로그래밍 언어
- 27.1 C와 C++: 형제 사이
- 27.2 함수
- 27.3 기타 사소한 차이점
- 27.4 자유 저장 영역
- 27.5 C 스타일 문자열
- 27.6 입력과 출력: stdio
- 27.7 상수와 매크로
- 27.8 매크로
- 27.9 예제: 침습적 컨테이너
- 5부 부록
- 부록 A 언어 요약
- A.1 일반적인 내용
- A.2 리터럴
- A.3 식별자
- A.4 유효 범위와 저장 영역의 유형, 수명
- A.5 표현식
- A.6 구문
- A.7 선언
- A.8 내장형 타입
- A.9 함수
- A.10 사용자 정의 타입
- A.11 열거형
- A.12 클래스
- A.13 템플릿
- A.14 예외
- A.15 네임스페이스
- A.16 별칭
- A.17 전처리기 지시어
- 부록 B 표준 라이브러리 요약
- B.1 개요
- B.2 오류 처리
- B.3 반복자
- B.4 컨테이너
- B.5 알고리즘
- B.6 STL 유틸리티
- B.7 입출력 스트림
- B.8 문자열 조정자
- B.9 수치
- B.10 시간
- B.11 C 표준 라이브러리 함수
- B.12 기타 라이브러리
- 부록 C 비주얼 스튜디오 시작
- C.1 프로그램 실행
- C.2 비주얼 스튜디오 설치
- C.3 프로그램 작성과 시작
- 부록 D FLTK 설치
- D.1 소개
- D.2 FLTK 다운로드
- D.3 FLTK 설치
- D.4 비주얼 스튜디오에서 FLTK 사용
- D.5 테스트
- 부록 E GUI 구현
- E.1 콜백 구현
- E.2 Widget 구현
- E.3 Window 구현
- E.4 Vector_ref
- E.5 예제: Widget 조작
도서 오류 신고
정오표
정오표
[p.36: 아래에서 3행]
http://www.acornpub.co.kr/book/programming-bjarne
->
http://www.acornpub.co.kr/book/programming-cplus
[p. 79: 아래에서 11행]
>>는 “cout에 출력하라”는 의미로
->
<<는 “cout에 출력하라”는 의미로
[p. 80: 아래에서 7행]
cout과 출력 연산자인 >>를 사용한다.
->
cout과 출력 연산자인 <<를 사용한다.
[p. 94: 일괄 변경]
성
->
이름
[p.102: 아래에서 2행]
int a - 3;
->
int a = 3;
[p.113 : 18행]
cout << <>
cout << c << ' ' << i1 << ' ' << c2 << '\n';
[p.117: 첫 행]
int char b1 {1000};
->
char b1 {1000};
[p.131: 표 제외 아래에서 3행]
지금까지 가장 간당한
->
지금까지 가장 간단한
[p.179: 아래에서 7행]
// 잘못된 인자인 경우 'b' 반환
->
// 잘못된 인자인 경우 '-1' 반환
[p.180: 아래에서 1행]
잠정만을
->
장점만을
[p.189 : 위에서 4행]
for (int x : temps)
->
for (double x : temps)
[p.219 : 아래에서 2행]
t2.value = 3.14;^
->
t2.value = 3.14;
[p.226 : 위에서 5행]
Term 그 자체다.
->
Expression 그 자체다.
[p.249: 2행]
case '(': case ')': case '+': case '– ': case '': case '/':
->
case '(': case ')': case '+': case '–': case '': case '/':
('- '에서 - 뒤의 공백 삭제)
[p.254 : 아래에서 9행]
그리는 !는
->
그리고 !는
[p.266: 15행]
case '– ':
->
case '–':
[p.268: 13행]
case '– ':
->
case '–':
[p.308 : 1행]
(형식을 선택할 수 있는 기능도 제동한다.)
->
(형식을 선택할 수 있는 기능도 제공한다.)
[p.312: 5행]
집작
->
집착
[p.318 : 6행]
"아주 작다"는 말은
->
"매우 작다"는 말은
[p.333 : 실습문제 1행]
use.cpp에는 my.h와 stdlibfacilities.h를 #include 한다.
->
use.cpp에는 my.h를 #include 한다.
[p.333 : 실습문제 8행 - 하단 역자주]
my.h에서는 foo를 정의하지 않고 선언하기만 했으므로, 변수 foo를 사용하려면 my.cpp나 main.cpp 중의 한 곳에서 int foo = 0; 과 같이 foo를 정의해야 한다. 물론 foo를 전역 이름공간에서 선언했으므로 정의도 전역 이름공간에서 해야 한다.
[p.334 : 4행]
예상 밖의 결과라면 8.6절을 확인하자.
->
예상 밖의 결과라면 8.5.6절을 확인하자.
[p.340 : 7행]
Sahpe
->
Shape
[p.348 : 5행]
9.44절에서
->
9.4.4절에서
[p.358 : 1행]
Month m = Sep;
->
Month m = Month::Sep;
[p.372 : 13, 14행]
[p.397 : 15행]
if (isdigit(ch) || ch=="-") {
->
if(isdigit(ch) || ch=='-') {
[p.431 : 아래에서 8행]
"1.34e- 3"
->
"1.34e-3"
[p.439 : 위에서 13행]
// 필요한 문자 취환 수행
->
// 필요한 문자 치환 수행
[p.458 : 아래에서 1행]
각춘
->
갖춘
[p. 488 : 9행]
void Lines::Lines(initializerlist
->
Lines::Lines(initializer
[p.514 : 아래에서 8행]
[p.671 : 18행]
arg.elem.sz
->
arg.elem+sz
[p.673 : 위에서 13행]
a.elem.sz
->
a.elem+sz
[p.678 : 위에서 6행]
fill(cin)
->
fill2(cin);
[p.690]
[p.720: 아래에서 3행]
템플릿 사용자의 못은 아니다.
->
템플릿 사용자의 몫은 아니다.
[p.787 : 아래에서 13행]
p가 여전히 4의 값을 갖는 요소를 가리킨다는 점에 주목하자.
->
q가 여전히 4의 값을 갖는 요소를 가리킨다는 점에 주목하자.
[p.802 : 아래에서 6행]
기본적으로 항등 비교는 ==를, 순서 비교는 >(~보다 작다)을 이용해서 수행한다.
->
기본적으로 항등 비교는 ==를, 순서 비교는 <(~보다 작다)을 이용해서 수행한다.
[p.910 : 아래에서 7행]
for (const auto& x : m)
->
for (const auto& x : *m)
[p.911 : 3행]
for (const auto& x : m)
->
for (const auto& x : *m)
[p.916 : 2행]
[p.917 : 함수 10행]
[p.924 : 아래에서 4행]
[p.927 : 2행]
include
->
include
[p 968 : 9행]
Using cmplx
->
using cmplx
[p.1063 : 첫 번째 함수]
아래 이미지 참고
[p.1065 : 3행]
[p.1068 : 예제 코드]
using namespace std;
->
using namespace std;
using namespace std::chrono;
[p.1071 : 3행]
쉬어야
->
쉬워야
[p.1101 : 5행]
[p.1101 : 11행]
함수를
->
함수들을
[p1130 : 아래에서 9행]
123 // double: 0.123
->
.123 // double: 0.123