C++ STL
·
C++
새로 추가된 STL 1. std::unordered_map (그리고 unordered_multimap) - 정렬안된 맵 std::map은 자동으로 정렬되는 컨테이너다. -> 요소 삽입/제거가 빈번하면 성능이 저하된다.=>정렬안된 std::unordered_map사용 std::unordered_map은 키와 값의 쌍들을 저장, 키는 중복 불가, 자동으로 정렬되지않음 -> 요소는 해쉬 함수가 생성하는 색인 기반의 버킷들로 구성, 해쉬맵이라고도 함. std::map 자동 정렬, 이진 탐색 트리, 탐색 시간 : O(logn), 삽입과 제거가 빈번하면 느리다. std:: unordered_map 자동 정렬X, 해쉬 테이블, 탐색 시간 O(1)-해쉬 충돌 없는 경우, 최악 : O(n), 버킷 때문에 메모리 사용량 ..
C++ 새로운 자료형
·
C++
C언어 NULL int number = NULL; (O) int* ptr = NULL; (O) nullptr //NULL 인데 포인터로 지정 int anotherNumber = nullptr; (Error) int* anotherPtr = nullptr; (O) 포인터에는 언제나 nullptr을 사용하자. 더 이상 NULL이 있을 곳은 없다. 고정 폭 정수형 기존 기본 자료형은 몇 바이트로 만들어라 라는 표준이 없다. int는 4byte라고 알려져있지만 모두 그런 것은 아님. 대표적으로 long은 C#에서 8byte C++에서는 4byte임 이렇게 컴파일러마다 다른 자료형 크기를 고정하기위하여 만듦 int8_t / uint8_t int16_t / uint 16_t intptr_t / uintptr_t 등..
C++ 11/14/17/...의 키워드
·
C++
1. auto : 데이터 형을 자동으로 추론 - 컴파일 동안 데이터 형이 결정이 된다. - 따라서, 반드시 auto 변수를 초기화해야한다. - Javascript의 동적으로 자료형이 바뀌는 것과는 다르다. 포인터 받을 때 : auto 또는 auto* (확실히 구분하는 것이 좋다. 모호한 상황에서 가독성이 좋지 않기 때문) 참조를 받을 때 : auto& (&가 없으면 컴파일러가 구분을 못하기 때문에 당연하게 &를 붙여야 한다) const 참조를 받을 때는 const auto&를 사용하자(이 것도 가독성이 안좋아진다.) auto는 타이핑을 줄여주는 대신 가독성을 떨어트린다. => 몇 개를 제외하고 auto보다 실제 자료형을 선호한다. auto를 사용하는 경우 for (std::vector::const_ite..
C++ STL 알고리듬
·
C++
STL 알고리듬이란? 1. 요소 범위에서 쓸 수 있는 함수들 [처음, 마지막) 2. 배열 또는 몇몇 STL 컨테이너에 쓸 수 있음 3. 반복자를 통해 컨테이너에 접근 4. 컨테이너의 크기를 변경하지 않음(추가 메모리 할당이 없다) STL 알고리듬의 유형 #include 변경 불가 순차(sequence)연산 find(), for_each(), ... 변경 가능 순차 연산 copy(), swap(), ... 정렬 관련 연산 sort(),merge();, ... #include 범용 수치 연산 accumulate(), ... STL 알고리듬은 많다. http://www.cplusplus.com/reference/algorithm/ 참고 생각보다 구현되있는 것이 많지만 직접 손으로 코드를 짜는 사람이 많다.
C++ 탬플릿 프로그래밍
·
C++
형태 template ; template ; typename과 class 차이? -> 없다 그냥 typename을 사용하면 된다. 템플릿을 인스턴스화 할 때마다 컴파일러가 내부적으로 코드를 생성 템플릿에 넣는 자료형 가지수에 비례하여 exe파일 크기 증가 컴파일 타임 도중 다형성 부여가 가능하다. STL을 돌게하는 주된 프로그래밍 방식 코드를 중복 작성할 필요가 없어졌다. #define MAX 3 const int MAX = 3; static const int MAX = 3;에 대한 해결 방안 => class 이름 { private: enum { MAX = 3 }; //상수화 된다. int Arr[MAX]; } 클래스 위에 template을 선언하여 클래스템플릿 생성이 가능하다. 선언 template c..
취업을 위해 해야할 일! 멘탈리티
·
취업강의
멘탈을 열심히 잡고 버그를 고치는 연습 구글링하는 연습을 해야한다.