320x100

STL 3

std::min, std::max 사용시

windows.h를 include하고 std::max(), std::min() 함수를 사용하려고 하면 error C2589: '(': '::' 오른쪽에 잘못된 토큰이 있습니다. error C2062: 예기치 않은 'unknown-type' 형식입니다. error C2059: 구문 오류: ')' 와 같은 에러 메시지를 보게 된다. 이유는 windows.h에 이미 정의 되어있는 max 매크로와 min 매크로가 존재하기 때문에 이름이 충돌나는 것인데 충돌 방지를 위해 다음과 같이 windows.h include 위에 NOMINMAX 디파인을 추가하면 해당 오류는 발생하지 않는다. #define NOMINMAX #include

std::map

map은 key와 value로 구성된 컨테이너로 을 include해 사용할 수 있다. 선언 // key_type - 키의 오름차순으로 정렬되며 정수형 > 스트링 > 사용자 정의 타입 순으로 느려진다. std::map map_container; 데이터 삽입 insert의 결과로 pair가 리턴되며, second값이 bool 타입이므로 insert의 성공여부를 알 수 있다. map_container.insert(std::make_pair(key, data)); 데이터를 삽입하기에 가장 편한 방법이다. map_container[key] = data; 이 두 가지 방법의 차이점에 대해 정리해둔 블로그 내용을 간략히 얘기하자면, operator[]는 map에서 키를 먼저 찾아보고 없는 경우에 value의 기본 생..

자주 쓰이는 vector 사용 패턴

#include 벡터 생성 및 초기화 // 1차원 // 디폴트 생성자 vector vec; // 원소 10개를 zero 초기화(0, 0.0, nullptr..) vector vec(10); // 원소 10개를 3으로 초기화 vector vec(10, 3); // 이니셜라이저 리스트 생성 vector vec({1, 2, 3}); // 유니폼 초기화 vector vec = {1, 2, 3}; vector vec{1, 2, 3}; // 힙에 생성 auto vec = std::make_unique(10); // int타입 벡터 배열(크기 : 10) 생성 vector vec[10]; // int형 백터 배열 생성(행은 가변이지만 열은 고정) vector vec[] = {{1, 2}, {3, 4}}; // 벡터 v..

320x100