struct Point { int x, y; };
struct Line {
Point p1, p2;
double angle() const { return atan2(p2.y-p1.y, p2.x-p1.x); }
};
에서 2D 라인의 데이터를 가정 그리고 간격 (-PI, PI]
에 있어야하는 각도로 정렬이를 저장할.
내 문제 :이 컨테이너에서 범위를 반복하고 싶지만 간격의 끝을 감쌀 수 있습니다. 예 : "모든 각도 사이의 각도는 PI*3/4
에서 -PI*3/4
"입니다.
std::multimap<double, Line> lm;
//insert elements...
auto begin = lm.lower_bound(PI*3/4);
auto end = lm.upper_bound(-PI*3/4);
for(auto & i = begin; i != end; ++i) { //infinite loop: end is before begin!
//do stuff with i
}
"원형으로 반복을 내가"기능에 ++i
의 장소를 취할 : 나는 multimap
같은 표준 컨테이너를 사용하는 경우
해결 (http://stackoverflow.com/a/1782262/7571258). – zett42
@ zett42 분명히 유용합니다. 내가 기계를 가지고 돌아올 때 나는 이것을 시도 할 것이다. 감사! –