가능합니까?STL 맵에서 std :: pair 대신 사용자 정의 클래스를 사용할 수 있습니까?
#include <map>
class Example {
private:
std::map<std::string, std::string, less<std::string>,
std::allocator< CustomPair<std::string, std::string> > > myMap;
};
위 예제에서 CustomPair는 키와 값을 보유하는 템플릿 클래스입니다. 이것이 가능하다면, 그렇게 간단할까요, 아니면 제가주의해야 할 것이 있습니까?
주된 문제점은 주문을 유지하기 위해 set이 상수 값을 보유하므로 CustomPair가 두 번째 멤버를 변경할 수 있어야하고 첫 번째 멤버 만 사용하도록 비교해야합니다. –
@Greg Rogers 고마워, 답변에 핵심 부분의 constness를 추가했습니다. – lothar
OP 의도가 무엇인지 모르겠다. 그의 질문은 <...> 대신 std :: allocator에 CustomPair <...>을 템플릿 매개 변수로 전달하는 것이었다. 이것은 질문에 대답하지 않습니다. – Ari