데브코스 자율주행 TIL 5일차

YUNJI·2023년 9월 24일
0
post-thumbnail

오늘 공부한 내용 📑


  • 5일차 C++ 이론 : 반복자 / 입출력 스트림

  • 5일차 STL : 알고리즘 part 3

  • 리눅스 기초(4) : Linux admin


새롭게 알게 된 점 😎


  • 사이즈가 지정된 벡터에 대하여 새로운 항목을 push하게 되면 메모리가 재할당되면서 반복자 무효화 현상이 발생한다.

    벡터의 최대 크기를 안다면 reserve를 통해 capacity를 확보하자
  • iostream은 include만으로도 메모리 사용량을 증가시킨다

    각종 스트림 객체가 자동으로 인스턴스화되기 때문이다.
  • endl은 개행문자 + 출력 버퍼를 밀어내는 역할(flush)

    잦은 flush는 성능에 영향을 주므로 개행문자만 출력하자
  • manipulator : iomanip 헤더에 정의

    boolalpha, setw(int), setfill(char) 등의 매니퓰레이터 제공
  • cin.peek( ) : 입력 스트림 버퍼의 입력 타입을 모를 때 미리 데이터를 확인하기 위해 사용

  • getline 함수의 세 번째 인자를 커스텀할 수도 있다.

  • ios::sync_with_stdio(false) : 콘솔 입출력에 대해서 스레드와 버퍼 사이의 동기화를 해제 (하나의 스레드만 사용할 때)

    다중 스레드 환경에서 여러 스레드가 얽히는 상황을 막기 위한 락킹 매커니즘을 해제
  • cin.tie(nullptr) : cin 과 cout 연결 해제

    입출력이 번갈아 일어나지 않는다면 입출력 사이 연결을 해제함으로써 flush 빈도를 낮춤

느낀 점 💖


C++을 배우면서 보다 효율적인 코드 작성을 위해서 구조적 매커니즘을 이해하는 것이 중요하다는 것을 느꼈다.

주짓수처럼 디테일이 중요한 언어인 것 같다.

오래 걸리더라도 사소한 디테일부터 신경써보자🙌

0개의 댓글

관련 채용 정보