반응형
[C++/STL] List의 저장 공간
List는 양방향 연결 구조를 가지고 있다.
데이터를 뒷 부분에 추가할 때 다음과 같은 일이 일어난다.
1. 6번에 데이터를 추가한다.
2. 빈 공간(임의 7번)을 찾는다.
3. 6번에 2번에서 찾은 7번의 주소를 연결한다.
4. 7번에 6번 주소를 연결한다.
5. 7번을 마지막 원소로 지정한다.
따라서 리스트는 빈 공간을 계속 찾아 연결하기 때문에 연속된 공간에 할당이 되지 않는다.
예제로 확인한다.
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> _list;
list<int>::iterator listIter;
_list.push_back(0);
listIter = _list.begin();
for (int i = 0; i < 10; i++)
{
_list.push_back(i);
}
for (listIter = _list.begin(); listIter != _list.end(); listIter++)
{
cout << *listIter << " : " << &(*listIter) << endl;
}
return 0;
}
반응형
'Programming > C, C++' 카테고리의 다른 글
C++ 한글 문자, 한글 문자열 출력 wchar_t (0) | 2022.12.13 |
---|---|
C++ STL 컨테이너 Vector의 재할당 확인하기 (0) | 2022.12.11 |
C++ STL 반복자(iterator) 사용법 (0) | 2022.12.11 |
C++ STL 컨테이너(Container) 사용법 (0) | 2022.12.11 |
C++ STL(Standard Template Library)란? (0) | 2022.12.11 |