2017-12-04 3 views
0

set 메소드 데이터 유형으로 C++에 대한 작업을했습니다. 방법은 CMP 클래스 내가 검색 및 설정을 이해 ~ 4의 시간에서, 방법의 이러한 유형을 해석하는 방법을 모르는C++에서 집합 타입을 사용하여 메소드를 해석하는 방법

하지만 때마다 문제가 발생하고 작업이 아닌 여기

set < string, cmp > genPerm (const string&); 

입니다 해결되었습니다. 어떤 사람이 날 안내해 줄 수 있습니다

+7

아마도 [std :: set'에 대한 좋은 참고 자료가 필요합니다 (http://en.cppreference.com/w/cpp/container/set)? 아니면 [좋은 초보자] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)? –

+4

이해할 수없는 부분에 대한 정보를 추가 할 수 있습니다. 나는'genPerm'을'string' 매개 변수를 취하고'set'을 반환하는 함수로 봅니다. 'int f (int x);와 매우 비슷합니다. –

답변

2

은 const를 참조하여 std::string 매개 변수를 수락하는 함수 선언입니다. std::set 컨테이너도 유형입니다. 그래서 당신의 기능은 그 유형입니다. <std::string, cmp> 템플릿의 첫 번째 매개 변수는 집합에 저장된 요소의 유형을 결정하며 std::string입니다. 세트는 고유 요소의 정렬 된 컨테이너입니다. 설정된 템플릿의 두 번째 매개 변수는 요소가 정렬되는 방법을 결정하는 key comparison function입니다. 귀하의 경우에 사용자 정의 정렬은 클래스에 의해 제공되며 이는 아마도 () 연산자에 과부하가 걸리고 실제로는 함수가됩니다. 함수의 반환 형식은 다음과 같습니다 사용자 정의 비교 cmp을 가지고 있지 않은 경우

std::set<std::string, cmp> 

는 반환 형식은 아마 다음과 같습니다 :

std::set<std::string, std::less<std::string>, std::allocator<std::string>> 

std::set<std::string, cmp, std::allocator<std::string>> 

에 해당합니다

실제로 :

std::set<std::string> 

약자.

+0

이 메서드의 반환 형식은 무엇입니까? –

+0

@AthaulRai 답변을 업데이트했습니다. – Ron

관련 문제