나는 사실 다음 코드 리턴보고 깜짝 놀랐다 :is_partitioned 행동에 요소가 만족하지 않을 때 술어
bool isSadPancake(char c) { return c == '-'; }
string pancakes = "+++";
bool isParitioned = is_partitioned(pancakes.begin(), pancakes.end(), isSadPancake);
내가 온라인 is_partitioned
true를 반환했다 참조 문서를 경우 범위의 모든 요소 [첫째, 마지막) 술어를 만족하는은 그렇지 않은 모든 요소 앞에 나타납니다. 이 경우 술어를 만족하는 요소가 나타나지 않으므로 반환 값 false를 예상합니다. 이 예상되는 동작입니까? 표준에서 자세한 내용을 찾을 수 있습니까?
관련 참조 [여기] (http://eel.is/c++draft/alg.partitions). – DeiDei
당신의 사고에서의 논리적 오류는 "술어를 만족시키는 요소가 없다"는 것이 아니라는 것입니다. 관련이 없습니다. 알고리즘은 "술어를 만족시키는 요소가 나타나는지"와 관련이 없습니다. –