|
xylosper 님이 쓰신 글 :
: 책에 설명이
:
: sort(b,e) : 범위 [b,e)에 의해 정의되는 요소들을 재정렬시킵니다. 이 때 정렬 방법은 역순이 아닌 순서입니다. <algorithm>에 정의되어 있습니다.
:
: 라고 되어있습니다.
:
: 그런데 범위가 [b,e)라면, e는 포함이 안된다는 뜻인데...책의 예제중에 v라는 벡터의 요소를 정렬하는 방법으로
:
: sort(v.begin(), v.end());
:
: 가 적혀있었습니다. 위의 설명대로라면 v.end()는 정렬구간에 포함되지 않는 다는 뜻인데...하지만 그렇게 되면 벡터의 마지막만 빼고 정렬을 하게 되고, 그러면 올바른 결과를 내지 못하는게 아닌가라고 생각됩니다.
:
: 하지만 실제로 코딩해보면 sort에 의해서 v.begin()부터 v.end()까지 전부 정렬이 된 결과가 나오던데...책의 설명이 못된 것인가요?
stl 에서 vector,deque,set,map 등등
모든 컨테이너에서
Container.end() 함수는
마지막 원소의 다음번 반복자를 리턴합니다.
그러므로 유효한 데이타의 반복자는
Container.begin() ~ (Container.end()-1)
까지가 되겠습니다.
그러므로 위와같이 하신것이 맞습니다.
|