for 루프는 무엇을하고 있습니까? 나는 그것을 이해할 수 없다.루프가 수행하는 작업은 무엇입니까?
list<pair<int, double> > nabors;
list<pair<int, double> >::iterator i;
for (i = nabors.begin(); i != nabors.end() && dist >= i->second; i++);
for 루프는 무엇을하고 있습니까? 나는 그것을 이해할 수 없다.루프가 수행하는 작업은 무엇입니까?
list<pair<int, double> > nabors;
list<pair<int, double> >::iterator i;
for (i = nabors.begin(); i != nabors.end() && dist >= i->second; i++);
그것은 어떤 요소가 조건을 만족하지 않는 경우 조건을
dist < i->second
을 만족 nabors
의 첫 번째 요소, 반복자 nabors.end()
에 i
점을 찾는 것.
@Dominic : 수정 해 주셔서 감사합니다. 나는 단지 그것을 생각하고, 그것을 고치기 위해 되돌아 왔고, 그것이 이미 정정되었다는 것을 발견했다. :-) –
@ 제임스 - 문제 없습니다! –
일부 STL 및 반복기 자습서를 확인해야 할 수 있습니다. 여기
아마 코드가 std::find_if
및 명시 적 술어와 명확입니까?
class further_away_than
{
double dist;
public:
further_away_than(double dist) : dist(dist) {}
bool operator()(const pair<int, double>& p)
{
return p.second > dist;
}
};
#include <algorithm>
// ...
i = find_if(nabors.begin(), nabors.end(), further_away_than(dist));
몰라, 난 그냥 STL의 팬보이 : 당신을 혼란 루프의
부분이야? – jalf
나는 친구를 대신하여이 질문을 올렸다. 나는 C++ 사람이 아니기 때문에 여기에 복사/붙여 넣기를하고 대답을 보여 주었다 ... 그는 stackoverflow의 빠른 응답에 감명 받았다. 고마워. –
Nothing 지루한 괴짜들의 집단적인 하이브 정신보다 더 강력하거나 위험합니다. – Sneakyness