어디 까지나 VC7의 STL에만 해당되는 얘기지.. 다른 라이브러리는 검토한바 없으므로..
참고용으로만 알고 있자~.. ㅋㅋ
기본생성자에 의해 리스트 컨테이너가 만들어지면
최초 head-node가 1개 자동으로 만들어진다.
물론 노드안에는 짐작하는것과 같이 link 구조를 유지하기 위한
prev, next node를 가르키는 포인터 변수가 존재한다.
물론 데이터를 담기 위한 _Myval이라는 넘도 존재한다.
std::list<int> list1;
list를 하나 만들고 watch창으로 확인해보자..
list1
|
+-- allocator..
|
+-- _Myhead
| |
| +-- _Next
| |
| +-- _Prev
| |
| +-- _Myval
|
+-- _Mysize
아무런 데이터가 없는 상태에서는 _Myhead의 주소와 _Next, _Prev의 주소가 같은것을 볼 수 있다.
물론 _Mysize는 0이다.
한개의 노드를 추가해보자.
list.push_back(100);
_Next, _Prev의 주소가 새로 추가된 노드의 주소로 변경된것을 확인할 수 있을것이다.
물론 _Mysize는 1로 바뀌었다
몇개의 노드를 더 추가해보고 살펴보면 링크 구조에서
Prev-node가 없거나 Next-node가 없을경우는 모두
처음에 생성한 head-node의 주소를 가르키는것을 확인할 수 있다.
어찌 보면 head-node가 연결되어 node들이 circle구조처럼 보일수도 있지만.
head-node의 기능은 end iterator의 기능일 뿐이니 오해하지 말자~.
다시 말해
list.begin()은 head-node의 next가 되는것이고
list.end()은 head-node 자신이 된다는 얘기이다..
피드 구독하기:
댓글 (Atom)
-
대상이 되는 이미지를 SVG(Scalable Vector Graphics) 이미지로 변환 - 각종 툴이나 웹상에서 바로 바꿔주는 다양한 방법이 있음(검색 검색~) - 찾은거 하나 : http://image.online-convert.com/c...
-
mitmproxy( man in the middle proxy) 설치 메모 https://mitmproxy.org/ 에서 설치 방법 확인 brew를 사용해서 설치 진행 - $ brew install mitmproxy - 설치후...
-
MQTT mosquitto 서버 설치와 간이 테스트 https://mosquitto.org 모스키토 설치 brew install mosquitto 모스키토 서비스 실행 brew services start mosquitto 모스키...
댓글 없음:
댓글 쓰기