나는이 사각형 객체의 비교에 대해 다음 구조체 ..왜 내 개체가 std :: set에 삽입되지 않습니까?
struct rectcomp {
bool operator() (const Rect& lhs, const Rect& rhs) const{
return lhs.size.width<rhs.size.width;
}
};
나는 내가 저장하고자 다음과 같은 세트가 내 사각형의
std::set<Rect,rectcomp> _availableRects;
나는 다음과 같은 코드를 삽입;
void insertPairOfRects(const Rect rect1,const Rect rect2){
_availableRects.insert(rect1); //first line
_availableRects.insert(rect2); //second line
}
문제는 rect1은 항상 삽입되지만 rect2는 삽입되지 않는다는 것입니다. 내가 insertPairOfRects 함수의 첫 번째 줄 뒤에 디버거를 통해 단계를 밟을 때 insertPairOfRects ...의 객체 수가 증가하는 것을 분명히 볼 수 있지만 두 번째 경우에는 그렇지 않습니다.
나는 어떤 실수를하나요?
편집 : 내 비교 기능에서 실수로 인한 것 같습니다. 내가 전에 세트에 대해 한 번도 써 본 적이 없으므로 아마 여기에 근본적인 오해라고 상상해보십시오.
네, 그게 문제였습니다. 당신이 올바른지. 7 분 안에 답을 받아 들일 수 있습니다. –