STL 의 반복자 증가에 대한 질문입니다. 보통 iterator를 하나씩 증가를 시키는데.. 임의의 특정 갯수만큼 증가시키고자 하는데 잘 안되네요..
map::iterator iter; iter++ 인 아니라 iter+=3 이런식으로 쓰고 싶은데. 이렇게 하려면 어떻게 해야 하는지 좀 알려주세요..
std::map::iterator는 임의 접근 반복자가 아니라서 그렇게 쓸 수 없습니다.
std::vector::iterator나 std::deque::iterator는 그렇게 쓸 수 있지요.
간결한 멋은 없지만 다음과 같이 하면 될 듯 하네요:
std::map::iterator iter; for (int i = 0; i < 3; ++i) ++iter;
#include <iterator> std::advance(i, 3);
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
임의 접근 반복자
std::map::iterator는 임의 접근 반복자가 아니라서 그렇게 쓸 수 없습니다.
std::vector::iterator나 std::deque::iterator는 그렇게 쓸 수 있지요.
간결한 멋은 없지만 다음과 같이 하면 될 듯 하네요:
advance 쓰시면 됩니다.
댓글 달기