std :: find_if를 사용하여 값 구조의 특정 요소에 특정 값을 가진 내지도의 첫 번째 요소를 검색하고 싶습니다. 나는 조금 혼란 스럽다. bind1st 또는 bind2nd를 사용해야한다고 생각합니다. 그러나 나는 올바른 방법이 아닙니다. 하는 수 (std :: map find_if 조건 스타일 혼동
이struct ValueType { int x, int y, int z };
std::map<int, ValueType> myMap;
... {populate map}
std::map<int, ValueType>::iterator pos = std::find_if(myMap.begin(), myMap.end(), <?>);
자, 내가 치형의 .x와 회원이 특정 정수 값과 동일했다 맵의 첫 번째 요소를 찾기 위해 싶다고 가정 해 봅시다 : 여기
은 일부 의사 코드입니다 각 통화 변경).이것을 달성하기 위해 함수 또는 함수 객체를 작성하는 가장 좋은 방법은 무엇입니까? 나는 정수 값을 제공하기 위해 bind1st 나 bind2nd가 필요하다고 생각하게하는 단항 술어가되어야한다는 것을 이해합니다.하지만 그것에 대해 어떻게 해야할지 잘 모르겠습니다. 이 재료를봤을 때 너무 오랜 시간이 걸렸습니다! >. <
지도의 요소는 키순으로 정렬되므로 입력 순서가 잘 정의되어 있으므로 조건을 충족하는 첫 번째 항목을 묻는 것이 잘 정의되어 있습니다. – celtschk
예, 잘 정의되어 있습니다. 그러나 순서는 ValueType의 값에 종속되지 않습니다. 그게 내가 말하려고했던거야. –
고마워, 정확히 내가 필요한 것 :) –