brunch

You can make anything
by writing

C.S.Lewis

[C++] #2 string, list 와 map 예제

들어가는 글: 첫번째 글에 내용이 넘 없어서, 좀더 코딩해보았습니다 :-) 

깃헙 링크: https://github.com/yudong80/cppstudy/commit/930e78a2618d1175dccf4f24355a7a4f3458d894 


1. string 예제 


부서 이동후 가장 먼저 한 일은 기존 코드에 로그를 잔뜩 넣어보는 것이었습니다. 

아직 전체 컴포넌트의 구조를 모르니 주요 파일/메서드에 로그를 넣고 

전체적으로 어떻게 동작하는지 파악해보는 것이죠. 


어떤 언어든 string을 사용할 줄 알아야 로직도 넣어볼 수 있습니다. 


파일: string_ex.cc 

깃헙 링크: https://github.com/yudong80/cppstudy/blob/main/basics/string_ex.cc 


간단하게 문자열 생성하고 몇 개의 멤버 함수를 호출해보았습니다. 


연산자 오버로딩(+) , length(), empty(), find(), substr() 정도 호출해보고 

결과를 출력해봅니다. 



2. list 예제 


가장 손쉽게 사용할 수 있는 자료 구조인 list 예제를 몇 개 만들어보았습니다. 

제가 순수하게 만들었다기보다는 적당히 구글링하여 

제가 궁금한 것 위주로 코딩하였습니다. 


파일: list_ex.cpp 

깃헙 링크: https://github.com/yudong80/cppstudy/blob/main/basics/list_ex.cc


태양계의 각 행성들의 정보가 표시됩니다. 

다음은 컴파일 및 실행 결과입니다. 

저도 정확히는 모르는데 

- push_back()은 값을 넣을때 복사가 발생하고 

- emplace_back()은 복사가 발생하지 않는다고 합니다 (no move) 


성능이 중요한 경우라면 emplace_back()을 써야 할 것 같아요. 


3. map 예제 


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

매거진의 이전글 [C++] #1 VS Code 환경설정

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari