2014-04-18 3 views
0

맵에 부울 값을 세 번째 매개 변수로 넣는 문제가 있습니다. 다음과 같은 것 :맵 매개 변수 C++

int value; 
std::map<String str, int x, bool bl> 

여기서 bool은 x> value else true이면 false를 반환합니다.

지도 예제에서 볼 수있는 것은 맵의 키 값을 비교하여 그에 따라 결과를 반환하는 비교 객체 매개 변수를 추가 할 수 있다는 것입니다.

의견을 보내 주시면 대단히 감사하겠습니다.

감사합니다, 그것을 할 수있는 몇 가지 방법이 있습니다

+1

당신이하려는 것은 의미가 없습니다. 그러나 이것이 [* X-Y 문제 *] 일 수 있습니까 (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)? – juanchopanza

+0

해결책 공간으로 걸어 들어가는 대신 실제 문제 (해결할 문제)를 설명 할 수 있습니까? – Arun

답변

1

, 여기에 두 가지 :

1 :

std::map< std::string, std::pair<int,bool> > mymap; 
mymap["xyz"].first = someValue; 
mymap["xyz"].second = someValue > value; 

2 :

struct MapElement 
{ 
    int x; 
    bool bl; 
}; 

std::map< std::string, MapElement > mymap; 
mymap["xyz"].x = someValue; 
mymap["xyz"].bl = someValue > value; 

지도 유형이 수행 멤버를 지정하지 않아도 (예 : int x) 멤버로 x와 bl이있는 유형 만 지정하면됩니다 (예 : 충분 2).

+0

두 번째 제안은 자신의 목적에 매우 뛰어납니다. 'x'값이 임의의 'value'상수보다 큰 경우 true를 반환하는 멤버 함수를 가질 수 있습니다. – noobProgrammer

+0

제 문제 때문에 제 2의 접근법을 택 했으므로 적절하게 작동합니다! 고맙습니다. – user3549476