[C++] template <typename T>
·
C/C++
마법의 키워드 template 를 알아보자 이놈이 있기 전까지 우린 항상 int arr[n] type을 지정했다 그리고 매번 STL의 vector, list등을 사용할 때 vector 에서 이 꺽새 안에 들어가는 datatype을 왜 명시하는 것이었나? [구문] template class Class_Name { } 이 마법의 구문을 클래스 상단에 명시하면 클래스 생성시 어떤 타입이든 명시한 typename으로 대치시켜준다. (컴파일러단에서 수행) 따라서 string, int, etc... 어떤 타입이든 담을 수 있었던 것이다. 템플릿(template)이란 단어가 의미하는 '틀', 어떤 데이터 타입이든 담아낼 수 있는 class 틀을 의미한다. 배열 내의 최대 값을 반환하는 템플릿 함수를 만들어봤다. [R..
[std] Vector
·
C/C++
STL (Standard Template Libaray) 가장 기본적인 data structure [정의] 길이(크기)가 가변적인 array list ♣ Vector의 Capacity (할당된 메모리 공간의 크기)를 넘어서는 시점에서 자동으로 메모리 재할당 및 기존 원소값들의 복사가 발생하는 원리로 크기의 가변성을 보장한다. [Time Complexity Analysis] 임의의 위치 접근 (index 사용) : O(1) 맨 뒤 원소 삽입/삭제 : amortized O(1) 임의의 위치 원소 삽입/삭제: O( N + M ) // N: 삽입될 원소 갯수, M: 해당 원소 인덱스 뒤의 원소 갯수 (한칸 씩 뒤로 밀어줘야 함) 분류 임의의 위치 접근 맨 뒤 원소 삽입/삭제 임의의 위치 원소 삽입/삭제 Func..