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

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

오늘 공부한 내용 📑


  • 4일차 C++ 이론 : 템플릿

  • 4일차 STL : 알고리즘 part 2 / 연관 컨테이너와 비순차 연관 컨테이너

  • 리눅스 기초(3) : vim editor


새롭게 알게 된 점 😎


  • 템플릿 : 대상 타입만 다르고 로직이 같은 경우에 컴파일러가 대신 복붙

    템플릿 클래스 및 템플릿 함수 내 인자는 컴파일 타임에 결정됨!
    template \ : T는 컴파일 시 결정
    주어진 typename과 파라미터 타입을 함께 추론
  • 템플릿 파라미터 팩 : Params&&... params >> 무한 개의 params 정의 가능

  • 논타입 파라미터 : 정수 타입 값, array, 포인터, 참조형 변수 등이 템플릿 파라미터에 올 때

  • 템플릿 템플릿 파라미터 : 다른 템플릿이 템플릿 파라미터로 올 때

  • using을 사용하면 템플릿 별명 생성 가능

    typedef 은 템플릿 인스턴스에 대해서만 별명 생성 가능, 템플릿 자체에는 X
  • mismatch() : 항목열을 비교하다가 불일치가 처음 발생하는 위치의 반복자를 pair(첫 번째 열 반복자, 두 번째 열 반복자)리턴

    무작위로 배치된 항목열을 비교하기 위해서는 정렬 필요
  • lexicographical_compare() : 두 항목열을 사전순으로 비교

  • next_permutaion, prev_permutaion() : 모든 순열을 순회하고 싶다면 우선적으로 정렬 필요!

  • 집합 알고리즘 : set_union, set_difference, set_intersection, set_symmetric_difference()

    결과 집합 크기 미리 확보하는 것이 중요
  • set : key == value, map : (key, value)

    multi + set, map : 중복 허용
    unordered + set, map : 정렬 x, 해시 테이블 관련 인터페이스 사용 가능
  • lower_bound : 찾는 key의 반복자 반환, 존재하지 않으면 key보다 크거나 같은 첫 항목 반환

  • upper_bound : key보다 큰 첫 항목 반환, 존재하지 않으면 end 반복자 반환

  • equal_range = pair(lower_bound, upper_bound)

느낀 점 💖


템플릿은 눈에 익숙하긴 한데 템플릿에 대한 이해도나 활용도를 생각해보면 그렇게 잘 이용하고 있는 이론은 아닌 것 같다.

템플릿에 대한 추가적인 공부나 문제 풀이가 필요할 것 같다.

오늘 STL에서 알려주신 알고리즘들은 알고리즘 문제 해결에 있어서 사용할 수 있는 기술 폭을 늘릴 수 있는 기회였다👍

0개의 댓글

관련 채용 정보