-
decltype 타입 지정자란?언어/C, C++ 2025. 2. 18. 19:03
변수를 초기화하는데 표현식을 사용하는 것이 아닌, 컴파일러에서 표현식으로부터 추론한 타입으로 변수를 정의하고자 할 때 사용할 수 있으며 이 지정자는 피연산자 타입을 반환한다.컴파일러에서는 타입을 결정하기 위해 표현식을 분석할 뿐 평가하지는 않는다. decltype(f()) sum = x; // sum의 타입은 f에서 반환한 타입컴파일러에서는 f를 호출했을 때 이 함수에서 반환하게 될 타입을 sum의 타입으로 지정한다. const int ci = 0, &cj = ci;decltype(ci) x = 0; // x는 const int 타입decltype(cj) y = x; // y는 const int& 타입이고 x와 결합decltype(cj) z; // 오류 : z는 참조자이므로 초..
-
constexpr 변수란?언어/C, C++ 2025. 2. 17. 23:16
constexpr 선언을 사용해 변수가 상수 표현식인지 컴파일러에서 확인할 수 있다.constexpr 로 선언한 변수는 암시적으로 const이므로 상수 표현식으로 초기화해야 한다. constexpr int mf = 20; // 20은 상수 표현식constexpr int limit = mf + 1; // mf + 1은 상수 표현식constexpr int sz = size(); // size가 constexpr 함수일 때만 좋음 일반적으로 상수 표현식으로 쓰려는 변수는 constexpr을 사용하는 것이 좋다. 상수 표현식은 컴파일 중에 평가할 수 있으므로 constexpr 선언에 쓸 수 있는 타입은 제한적이다.constexpr에 쓸 수 있는 타입을 상수 타입이라고 하는데 상수 ..
-
[C++] Vector STL언어/C, C++ 2021. 7. 18. 16:49
- 헤더파일 선언 #include - 선언 template vector t_vector; vector int_vector; vector char_vector; - 함수 push_back() -> 벡터의 끝에 요소를 추가 pop_back() -> 벡터의 끝에 있는 요소를 삭제 begin() -> 벡터의 첫 번째 요소에 대한 임의 액세스 반복기를 반환 end() -> 벡터 끝을 가리키는 임의 액세스 반복기를 반환 clear() -> 벡터의 요소를 지웁니다. empty() -> 벡터 컨테이너가 비어 있는지 테스트합니다. emplace() -> 내부에서 생성된 요소를 벡터의 지정된 위치에 삽입합니다. emplace_back() -> 내부에서 생성된 요소를 벡터의 끝에 추가합니다. erase() -> 벡터의 지정..
-
[C++] Queue STL언어/C, C++ 2021. 7. 17. 18:02
-헤더파일 선언 #include - 선언 template queue t_queue; queue int_queue; queue char_queue; ... - 함수 pop() -> queue 앞에서 요소를 제거 push() -> queue 뒤에 요소를 추가 empty() -> queue 가 비어있는지를 테스트 back() -> queue 뒤에 마지막으로 가장 최근에 추가된 요소에 대한 참조를 반환 size() -> queue 에 있는 요소 수를 반환 front() -> 앞의 첫 번째 요소에 대한 참조를 반환 // https://docs.microsoft.com/ko-kr/cpp/standard-library/queue-class?view=msvc-160 // 이 글은 개인적인 해석에 관한 문서로 오류, 축..
-
[C++] Stack STL언어/C, C++ 2021. 7. 17. 17:56
- 헤더파일 선언 #include - 선언 template stack t_stack; stack int_stack; stack char_stack; ... - 함수 pop() -> stack의 맨 위에 있는 요소를 제거 push() -> stack의 맨 위에 요소를 추가 empty() -> stack이 비어있는지를 테스트 size() -> stack에 있는 요소 수를 반환 top() -> stack의 맨 위에 있는 요소에 대한 참조를 반환 // https://docs.microsoft.com/ko-kr/cpp/standard-library/stack-class?view=msvc-160 // 이 글은 개인적인 해석에 관한 문서로 오류, 축소, 과장 등 문제가 있을 수 있습니다.