[데브코스 자율주행 TIL] DAY2 (09/19)

happy_quokka·2023년 9월 19일
0

2023.09.19 데브코스 2일차

2일차밖에 안됐는데 벌써 몇주가 지난 기분이다.
그날 공부할 것을 미루지말자!를 새기며 2일차 TIL을 작성해본다.

c++ 기초, STL, 리눅스 설치에 대해 배웠다. STL 과제도 수행했다.
오늘도 여전히 이해하는데 오래걸리고 공부를 많이 해야겠다는 생각이 들었다.


📕 C++

프로세스 메모리 구조

  • 가상 메모리가 어떻게 구성되어 있는지
  • 코드를 작성할 때 메모리 문제가 발생되지 않도록, 메모리를 최소화할 수 있도록 한번 더 생각해야겠다.

스마트 포인터

  • 포인터는 C언어일 때도 날 괴롭히더니 C++에서도 날 힘들게 한다...
  • unique_ptr(독점), shared_ptr(비독점), weak_ptr
  • 스마트 포인터와 raw 포인터를 혼합하여 사용하지 않기!
  • 스마트 포인터... 잘 활용하면 매우 유용할 것 같으나 아직 사용하는 것이 익숙하지 않다.
  • 조금 더 공부가 필요한 부분인 것 같다...

📌 STL

  • c++은 코테를 준비하면서 간단히 공부했었는데 지금보니 코테 어떻게 봤는지 신기할 따름이다

순차 컨테이너

  • vector, list, deque
  • 구현할 때 메모리를 한번씩 생각하면서 구현해야겠다!

알고리즘

  • sort()
  • merge()
  • nth_element()
    • 전체를 정렬하지 않고 정렬 후 몇번째를 가져오는 함수(빠르게 값 얻을 수 있음)
    • 이거 'k번째 수'문제에 적용했으면 좋았겠다라는 생각이 이제 든다. 이게 바로 복습의 중요성인가

💻 리눅스 설치

  • 리눅스...나에겐 아직 생소한 것
  • 듀얼부팅으로 리눅스를 설치해놨지만 아직 사용법을 잘 몰라서 VMware로 윈도우에 설치했다
  • 예전에 Virtual Box로 설치했다가 실패했던 기억이 떠올랐다. 왜 계속 오류가 났는지 아직도 모른다....하하

  • VMware로는 리눅스 설치를 완료했다!!
  • 설치 과정을 velog에 바로바로 작성한 것도 매우 뿌듯하다.
  • 주말과 같이 시간이 있을 때 가상버전이 아닌 원래 버전에서 사용하는 것도 연습할거다!

📚 과제

  • 오늘부터 STL 과제가 시작되었다.
  • 팀원들끼리 코드 리뷰를 진행하는데 역시 사람마다 코드를 다르게 짠다는 것을 실감했다. 아직 c++을 제대로 모르기 때문에 코드 리뷰를 하면서 여러 문법들을 공부할 수 있었다.
  • 과제들은 따로 시간이 된다면 velog에 작성할 생각이다.

회전하는 큐

  • 오랜만에 c++ 코딩을 하는거라 멍하게 시작했다.
  • cin으로 값을 입력받는 것도 생각이 안 났었다.
  • 큐를 그려가며 천천히 생각하면서 문제를 풀었다. 풀고나니 어려운 건 아니었지만 역시 생각하는게 쉽지 않다.
  • push_back, pop_front는 완벽 숙지한 것 같다

k번째 수

vector<int> tmp(array.begin(), array.end());
  • 이렇게 하면 vector를 선언하면서 array을 가져올 수 있다!
  • sort를 한 후 k번째 값을 찾는 것보다 nth_elements를 사용하면 더 효율적으로 찾을 수 있다.

👩‍💻 개인 공부

내가 추가로 공부한 C++(복사 생성자)

  • 어제 배운 부분 중 값 참조가 너무 어려워서 '이것이 C++이다'로 추가 공부중이다.
  • '디폴트 복사 생성자'는 shallow copy를 하기 때문에 포인터가 사용되는 경우에는 '복사 생성자 정의'를 통해 deep copy를 해야한다!!

0개의 댓글