목록2023/02 (3)
치춘짱베리굿나이스
SFINAE Substitution Failure Is Not An Error 의 줄임말이다 Substitution (치환) Failure (실패) is Not An Error (는 오류 아님) 뭐 이런 두루뭉술한 말이 다 있지? 단어 뜻만 봐서는 도대체 무슨 말인지 모르겠다 그러므로 공부가 필요하다… cppreference says: SFINAE "Substitution Failure Is Not An Error" This rule applies during overload resolution of function templates: When substituting the explicitly specified or deduced type for the template parameter fails, th..
stack 는 무엇인가 #include int main(void) { std::stack stack1; // 정수형 컨테이너, 용량 0으로 초기화 std::stack stack2(5); // 문자열 컨테이너, 용량 5로 초기화 } 보통 자료구조를 배우다 보면 배열과 연결 리스트를 배운 뒤 스택, 큐를 필수적으로 다루게 된다 그 때 배운 그 스택이 맞다! 입출구가 단 하나인, LIFO (Last in First Out) 속성의 그 스택이다 LIFO 에서 알 수 있듯이, 스택은 요소를 넣을 수 있는 입구가 제한적이고, 그 말인 즉슨 스택을 구현할 때는 원소를 중간에 끼워넣거나 중간의 원소를 삭제하는 등의 연산을 고려할 필요가 없다는 뜻이다 벡터의 구현에 비하면 굉장히 짧은 구현량을 가지고 있다 (아싸) 눈여..
Vector 는 무엇인가 #include int main(void) { std::vector vect1; // 정수형 컨테이너, 용량 0으로 초기화 std::vector vect2(5); // 문자열 컨테이너, 용량 5로 초기화 } 이전에 우리가 C에서 사용하던 배열은 고정된 길이만큼만 선언 및 할당해 놓고 그 제한 안에서 사용하는 형태의 컨테이너였다 벡터는 거기에서 한 단계 더 나아가, 원소를 추가할 때마다 이전에 할당한 용량이 부족하다면 → 메모리를 재할당하여 용량을 자동으로 늘려주는 신기한 컨테이너다 그 말인 즉슨, 처음에 벡터를 선언할 때 원소의 개수가 몇 개 들어올 지 모른다면 그냥 0개로 초기화해 주어도 원소를 추가할 때마다 알아서 메모리를 새롭게 할당한다는 뜻이다 더이상 내가 malloc 하..