지도 반복기를 사용하여 문제가 발생했습니다. 여기있는 누군가가 나를 위해 해결할 수 있기를 바랍니다.C++의 이터레이터를 사용하여지도 탐색
기본적으로, 나는이지도에서 지난 10 키를 반환해야, 그래서 나는이 시도 :
그것은 나에게 다음과 같은 오류주고있다 그러나for (map<int, char>::iterator i = (singleCountSwitched.end()); i != (singleCountSwitched.end()-10); --i) {
cout << (*i).first << ": " << (*i).second << endl;
}
:
main.cpp:150:112: error: no match for ‘operator-’ in ‘singleCountSwitched.std::map<_Key, _Tp, _Compare, _Alloc>::end<int, char, std::less<int>, std::allocator<std::pair<const int, char> > >() - 10’
을하는 - 연산자에 대한 지원이 없다고합니다. map.begin() + 10을 사용할 때 유사한 메시지가 throw되었습니다. 반복기를 잘못 사용하고 있습니까? 나는 STL 컨테이너의 반복자가 모두 + 과부하가 걸린 것으로 생각했다.
내가 솔루션을 완전히 이해하고 있는지 잘 모르겠다 - 내가해야하는 일이라면 루프에서 어떻게 사용합니까? 이전에 고급 함수를 사용 해 본적이 없기 때문에 for 루프에서 사용하는 방법을 완전히 모르겠습니다. – wesrobin
루프가있는 다른 예제를 추가했습니다 – Sergi0
좋아요, 작동하는 것 같습니다. 고마워요 Sergi0! – wesrobin