본문 바로가기

전체 글

(104)
[TIL 32장] 트리 & 해시 자료구조, map(feat. unordered map, multimap), mutable 오늘의 TIL 목차 (22. 09. 21) 트리 해시 map unordered map mutable map [ map ] : map은 각 노드가 key와 value 쌍으로 이루어진 트리로 노드 기반의 연관 컨테이너이다. #include // map 사용 시 포함해야 하는 헤더파일 map 객체명; Ex. map MapStr; // 키는 int형, value는 string형인 map 객체를 생성 - [ map 함수 ] @. insert() 는 map의 원소 삽입 함수 ( vector와 list의 push, pop 같은 것 ) - insert(값) 시 하나의 노드가 추가되는데, 이때 값은 노드에 담을 key와 value가 둘 다 있어야 한다. @. find(key값); find(키값); // 반환타입 iter..
[TIL 31장] 리스트(feat. 벡터&리스트 시간 복잡도 및 응용), 임시 객체 오늘의 TIL 목차 (22. 09. 19) 리스트 임시 객체 리스트 [ 리스트 ] : 노드 기반의 시퀀스 컨테이너 - 벡터와 동일한 방법으로 사용 [ 벡터와 리스트의 차이점 ] [1] 리스트 사용 가능 함수 ( 벡터 사용 X ) @. push_front(원소); : 배열의 가장 맨 앞에 원소를 삽입할 수 있다 @. pop_front(원소); : 배열의 가장 맨 앞의 원소를 삭제할 수 있다. @. splice(); : 이어붙이기? - lt2에서 iter2이 가리키는 곳에 lt1의 모든 원소를 잘라 붙입니다. * 리스트만 갖고 있는 함수 * @. sort( (조건자) ); // 알고리즘 sort(begin, end, 조건자)와 다르게 매개변수 X : 리스트.sort()시 디폴트로 오름차순 정렬을 한다. @...
[TIL 30장] 벡터 함수(feat. 2차원벡터), 알고리즘(feat. 조건자) 오늘의 TIL 목차 (22. 09. 17) 벡터 함수 알고리즘(feat. 조건자) 벡터 함수 [ 벡터 함수 ] : 컨테이너 벡터에서만 사용되는 함수 @. vector vec(10); 0으로 초기화된 메모리 공간 10개 생성; @. vector vec(10,1): 1로 초기화된 메모리 공간 10개 생성; @. reserve(숫자); : 숫자만큼 메모리 용량을 늘려 재할당하는 함수, 현재 메모리 용량보다 숫자가 더 클 때만 동작 @. resize(숫자) : 원소를 숫자만큼만 유지하고 뒤의 원소는 전부 삭제하는 함수, 메모리 공간은 유지 void main(void) { vector vec; vector::iterator iter; for (size_t i = 0; 5 > i; ++i) { vec.push_ba..
[TIL 29장] 컨테이너 함수(feat. deque), 반복자 오늘의 TIL 목차 (22. 09. 15) 컨테이너 함수 반복자 컨테이너 함수 [ 컨테이너 함수 ] : 컨테이너 별로 선언되어 있는(즉 사용할 수 있는) 함수가 다름 [ 모든 컨테이너가 소유하고 있는 일부 함수 ] @. size() : 원소의 개수를 반환하는 함수 (int형 반환) @. capacity() : 메모리 블럭의 개수를 반환하는 함수 (int형 반환) @. clear() : 컨테이너 내의 모든 원소를 삭제하는 함수 (메모리 블럭은 삭제X) @. swap(객체) : 동일한 컨테이너끼리 원소와 메모리 블럭까지 완전히 교환하는 함수 // shrink_to_fit(객체) : 여유분 메모리 공간을 원소 개수만큼 축소하는 함수, swap() 사용 권장 @. begin() : 첫번째 원소의 위치/값을 It..
[TIL 28장] STL 개론(feat. 자료구조), 컨테이너, 시간 복잡도, 벡터 오늘의 TIL 목차 (22. 09. 14) STL 개론 ( 컨테이너, 알고리즘, 함수 객체, 조건자 ) 시간 복잡도 벡터 STL ; Standard Template Library [ STL ] : 반복자를 가지고 동작하는 C++ 표준 템플릿 라이브러리, 표준에 맞게 어떠한 도구들을 모아놓은 것 [ STL 구성 요소 ] 1. 컨테이너 ( 클래스 템플릿 ) 2. 알고리즘 ( 함수 템플릿 ) 3. 함수 객체 ( 함수처럼 사용할 수 있는 객체 ) 4. 반복자(=이터레이터) ( STL을 가리키는 포인터와 유사한 객체 ) * 매우 중요 * * 라이브러리란? : 소프트웨어를 개발하기 쉽게 어떤 기능을 제공하는 도구들 : 다른 프로그램들과 링크되기 위하여 존재하는 하나 이상의 서브루틴이나 함수들의 집합 파일, 함께 링..
[TIL 27장] 템플릿(함수 템플릿, 클래스 템플릿), 템플릿 특수화(feat. static 템플릿) 목표템플릿 ( 함수 템플릿, 클래스 템플릿 )템플릿 특수화(feat. static 템플릿)템플릿템플릿이란?함수나 클래스를 개별적으로 다시 작성하지 않아도, 여러 자료 형으로 사용할 수 있도록 하게 만들어 놓은 틀 [ 템플릿 종류 ]1. 함수 템플릿2. 클래스 템플릿 ( STL, Standard Template Library는 클래스 템플릿으로 구성 )[ 템플릿 장단점 ]장점 : - 모든 자료형을 호환 ( 클래스도 호환 )- 컴파일러가 자료형 검사를 수행하기 때문에 안전- 컴파일러 차원에서 인스턴스에 의한 코드 생성을 하기 때문에 속도 빠름// 기존의 함수, 클래스는 기능이 같아도 매개변수, 반환타입의 자료형에 따라 각각 함수를 직접 선언해줬어야 함// 각 자료형에 따른 함수를 생성하여 호출하는 원리는 똑..
[TIL 26장] 연산자 오버로딩, 함수 객체, 함수 포인터, inline 오늘의 TIL 목차 (22. 09. 08) 연산자 오버로딩(feat. 단항 연산자 오버로딩) 함수 객체 inline 연산자 오버로딩 [ 연산자 오버로딩 ] : 사용자 정의 타입(구조체, 클래스)의 자료형 간의 연산을 수행하기 위해 연산자의 이름을 이용한 함수를 만들어 주는 문법 class 클래스명 { // 연산자 종류 : +, -, *, /, ==, ++, --, etc. 반환타입 operator+(매개변수) { 몸체코드; } } void main(void) { 클래스명 C; C + 매개변수; // C.operator+(매개변수);와 동일 } - class CDainn() { public: int m_iA, m_iB; public: CDainn(int _iA, int _iB) : m_iA(0), m_iB..
[TIL 25장] 캐스팅(업캐스팅, 다운캐스팅), 캐스팅 연산자 오늘의 TIL 목차 (22. 09. 07) 캐스팅 (업 캐스팅, 다운 캐스팅) 캐스팅 연산자 (C++ 형 변환) 캐스팅 [ 캐스팅 ] : 형 변환, 그룹핑 목적으로 상속 관계의 서로 다른 클래스를 같은 타입으로 묶을 때 업캐스팅/다운캐스팅이 주로 일어남 [ 업캐스팅 & 다운 캐스팅 ] // 부모 CParents, 자식 CChild 클래스가 존재할 때 * 대입 연산자(=)를 기준으로 우항이 좌항으로 대입되면서 좌항에 맞춰 캐스팅이 발생한다. - 대입 연산자는 좌항과 우항의 자료형이 동일해야 하기 때문 * 상속 관계에서의 캐스팅은 포인터나, 레퍼런스로만 캐스팅이 이뤄진다. - 캐스팅 당하는 객체가 실제로 변하지 않고, 포인터와 레퍼런스로 보는 관점만 달리지는 것 * 기본적으로 자식이 부모 객체를 가리키는 업..