: 여기
은 간단한 예입니다
std::sort(begin,end) // use operator<
std::sort(begin,end,order) // Where order is a functor
그래서 순서가 될 수 있습니다
- 함수
- 정적 멤버 함수
- 또는 함수처럼 작동하는 객체. 나를 위해
다음 작품 :
class X
{
public: static bool diff(X const& lhs,X const& rhs) { return true;}
};
int main()
{
std::vector<X> a;
std::sort(a.begin(),a.end(),&X::diff);
}
그러나 클래스는 다음 몇 가지 자연 순서가있는 경우 이유를 단지 클래스의 연산자 <를 정의하지. 이렇게하면 멤버에 액세스 할 수 있으며 주문을 정의해야하는 대부분의 표준 컨테이너/알고리즘에 대해 잘 작동합니다. 함수가 클래스에 선언 된 것처럼
class X
{
public: bool operator<(X const& rhs) const { return true;}
};
int main()
{
std::vector<X> a;
std::sort(a.begin(),a.end());
}
정적 함수 멤버가 될 수있는 비교 함수입니다.문제가 무엇이든 상관없이 코드가 표시됩니다! –
VC++가 STL을 얻는 데 작은 실수를했을 때 고양이가 고양이를 밟은 것처럼 보이는 오류 메시지를 내지 않았고 결과로 나온 perl 스크립트를 통해 미국 세금 코드를 실행하면 도움이되었습니다. –
VC++뿐만 아니라 모든 C++ 구현의 저주입니다. (VC10에서 'static_assert'로 조금 개선했으면 좋겠지 만). 개념은 거기에서 도움이 될 것입니다. 그러나 슬프도 그들은 물 속에서 죽었습니다 ... –