들어가는 글: 첫번째 글에 내용이 넘 없어서, 좀더 코딩해보았습니다 :-)
깃헙 링크: https://github.com/yudong80/cppstudy/commit/930e78a2618d1175dccf4f24355a7a4f3458d894
부서 이동후 가장 먼저 한 일은 기존 코드에 로그를 잔뜩 넣어보는 것이었습니다.
아직 전체 컴포넌트의 구조를 모르니 주요 파일/메서드에 로그를 넣고
전체적으로 어떻게 동작하는지 파악해보는 것이죠.
어떤 언어든 string을 사용할 줄 알아야 로직도 넣어볼 수 있습니다.
파일: string_ex.cc
깃헙 링크: https://github.com/yudong80/cppstudy/blob/main/basics/string_ex.cc
간단하게 문자열 생성하고 몇 개의 멤버 함수를 호출해보았습니다.
연산자 오버로딩(+) , length(), empty(), find(), substr() 정도 호출해보고
결과를 출력해봅니다.
가장 손쉽게 사용할 수 있는 자료 구조인 list 예제를 몇 개 만들어보았습니다.
제가 순수하게 만들었다기보다는 적당히 구글링하여
제가 궁금한 것 위주로 코딩하였습니다.
파일: list_ex.cpp
깃헙 링크: https://github.com/yudong80/cppstudy/blob/main/basics/list_ex.cc
태양계의 각 행성들의 정보가 표시됩니다.
다음은 컴파일 및 실행 결과입니다.
저도 정확히는 모르는데
- push_back()은 값을 넣을때 복사가 발생하고
- emplace_back()은 복사가 발생하지 않는다고 합니다 (no move)
성능이 중요한 경우라면 emplace_back()을 써야 할 것 같아요.
list와 함께 많이 쓰이는 기본적인 자료 구조입니다. 요즘 왠만한 언어는 다 기본으로 제공하죠.
파일: map_ex.cc
깃헙 링크: https://github.com/yudong80/cppstudy/blob/main/basics/map_ex.cc
위의 예제는 cppreference.com 이라는 사이트에서 가져왔습니다.
링크: https://en.cppreference.com/w/cpp/container/map
원래 for (auto pair : map) 이 부분이
이렇게 되어 있었는데, 저는 컴파일 오류가 발생하더라구요.
cppreference의 예제가 깔끔한데 말입니다.
한편 std::map을 배열처럼 다룰 수 있는 것이 좋았습니다.
실무에서 map을 더 사용하게 되면 필요한 예제들을 추가해보겠습니다.
컴파일 & 실행 결과는 다음과 같습니다.
앞으로 궁금한 주제 목록들
1. l-value, r-value
2. 참조자(&)
3. 등등
자세한 설명보다는 간결한 코드를 통해서 궁금증을 해결해보려고 합니다.
알면 코딩할 수 있겠죠
감사합니다.
2021.9.6