헤더파일에서 정의된 list::end()가 리스트 마지막의 다음을 나타내는 반복자를 리턴한다고 알고있는데
그럼 거기다 begin()으로 할당하면 원형링크드리스트가 되는거 아닌가요? 근데 저거 컴파일해서 돌려보니까
마지막 다음에 쓰레기값 출력되고 그다음에 다시 1부터 시작되는데 왜 이렇게 되는지좀 가르쳐주세요...
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
#include<iostream>
#include<list>
using namespace std;
int main(void)
{
list<int> my_list;
int N;
cin >> N;
for(int i=1; i<=N; ++i)
my_list.push_back(i);
list<int>::iterator iter = my_list.begin();
my_list.end() = my_list.begin();
for(int i=0; i<3*N; ++i){
cout << *iter << ' ';
iter++;
//if(iter == my_list.end()) iter = my_list.begin();
}
return 0;
}
- dc official App
댓글 0