Container, Predicate 질문입니다.
395
4 asked
template에서 template <typename T, typename Container = std::vector<T>, typename Predicate = std::less<T>> 이렇게 정의 해주시고 클레스 내부에서
Container _heap = {};
Predicate _predicate = {};
이런식으로 빈객체를 만들어 주셨다고 하셨는데 저는
template에서 typename Predicate는 std::less<T>를 Predicate로 그냥 정의한 것이고,
내가 새롭게 정의한 자료형? 이기때문에
Predicate(자료형) predicate = {} (중괄호 초기화로 기본생성자 호출하여); => Predicate라는 자료형을 가지는 변수이름이 _predicate인 객체를 만들었다는 뜻인가요??
Answer 1
0
typename Predicate에서 Predicate은 새로 정의한 자료형은 아니고
template 특성상 조커 카드처럼 우리가 아무거나 넣어줄 수 있는 것입니다.
typename Predicate = less<T>의 의미는, 아무것도 설정하지 않으면
less<T>로 간주하겠다는 의미이지 Predicate이라는 새로운 자료형을 정의하는게 아닙니다.
하지만 그 다음 Predicate _predicate;으로 해당 타입의 멤버 변수를 이용해
Predicate 타입의 _predicate 객체를 만든 것은 맞습니댜ㅏ.
헤더파일에 관한 질문
0
437
1
이진 탐색 트리 삭제 질문
0
700
1
해당 문제 유형을 수학적으로 표현 가능할까요?
0
505
1
vs2022 미로 줄간격
0
1589
2
pos 구조체 초기화 문제
0
498
0
맵이 이상하게 나오는데 무슨 문제인가요?
0
513
1
자동완성 기능 질문
1
521
2
push_back emplace_back 질문있습니다.
0
397
1
_size - 2 질문
0
417
1
Disjoint Set 질문있습니다
0
429
1
우선순위 큐 구현 연습 intellisense 질문
0
401
1
int32 관련 질문
0
278
1
c++에서 처음 보는 문법
0
385
1
학습에 크게 지장이 있는건 아니지만 단순 궁금해서 질문드립니다
0
324
1
힙 정렬과 병합 정렬
0
424
1
resize 질문
0
261
1
처음 보는 for문 문법
0
387
1
환경 설정.. 궁금점
0
388
1
이 비교 연산자를 넣어주는 이유가 있나요?
0
287
1
소멸자 관련 질문
0
250
1
&의 차이
0
290
1
프레임 관리 질문입니다.
0
332
1
연산자 오버로딩 관련 질문입니다.
1
203
1
안녕하세요 goormide 학습자입니다.
0
861
4

