본문 바로가기
Programming/C, C++

C++ STL List의 저장 공간

by Dev_카페인 2022. 12. 11.
반응형

[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;
}

반응형