1
다음과 같이 정의 된 우성 관계를 표현하기 위해 사용되거나 결합 될 수있는 하나의 메타 함수 (예 : std::less_equal
)를 찾고 있습니다.하나의 시퀀스의 "지배"를 다른 것보다 우위로 표현하기위한 메타 함수
시퀀스 A는 만약 다른 시퀀스 B (동일한 길이를 갖는 두) 지배한다 : (A)의 각 요소는 대응하는 요소 B 이상인
- 을 (A)의
- 적어도 하나 개의 요소가보다 큰 B의 해당 요소
지금까지 내가 갈 수 있었던 최선의 방법은 다음과 같이 두 가지 별도의 테스트로 구성되었습니다.
template<typename T>
bool dominates(T& sequence1 , T& sequence2)
{
if(std::equal(sequence1.begin() , sequence1.end() , sequence2.begin())) return false;
return std::equal(sequence1.begin() , sequence1.end() , sequence2.begin() , std::less_equal<double>());
}
단일 메타 기능을 사용하여 동일한 작업을 수행 할 수 있습니까?
이것은 메타 기능이 아닙니다. –
알아. 'std :: less_equal'이 발생했습니다. – Olumide
이 점을 올바르게 이해한다면 현재 사용하고있는 코드의 최적 버전을 원하십니까? STL이 생성하는 루프를 풀고 두 작업을 병합하면됩니다. – BlamKiwi