Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

STL/list

From ZeroWiki
Revision as of 05:27, 7 February 2021 by imported>Unknown
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

list

  • 만들기 까다로운 더블 링크드 리스트를 제공해준다.
  • include : list
#include <list> 
=== 선언 ===
list<int> l;
list<int>::iterator i;
=== 데이터 넣기 ===
l.push_back(5);  // 맨 뒤에 넣기
l.push_front(4); // 맨 앞에 넣기
=== 순회 ===
  • iterator 를 이용한 순회는 containter에 공통점이다.
list<int>::iterator i;

// for 에서 반복자 이용 순회
for(i = l.begin() ; i != l.end() ; ++i) 
    cout << *i << endl; 

// while 에서 반복자 이용순회 
i = l.begin(); 
while( i != l.end() ){ 
	cout << *i << endl;
	i++; 
} 


프로그램의 예

#include <list>
#include <iostream>
using namespace std;

int main(){
	const int INDEX_MAX = 5;
	int data[] = {1,2,3,4,5};
	
	list<int> l(&data[0], &data[INDEX_MAX]);


	list<int>::iterator i ;	

	cout << "for 문에서 반복자 이용 순회" << endl;
	for(i = l.begin() ; i != l.end() ; ++i) 
		cout << *i << "t"; 
	cout << endl;

	cout << "while 문에서 반복자 이용 순회" << endl;
	i = l.begin(); 
	while( i != l.end() ){ 
		cout << *i << "t"; 
		i++; 
	}

	return 0;
}
결과
for 문에서 반복자 이용 순회
1       2       3       4       5
while 문에서 반복자 이용 순회
1       2       3       4       5

추가 지식

list 의 반복자는 양방향 반복자로서 임의 접근 반복자가 지원하는 연산을 제외한 기타 모든 연산자에 대한 연산을 지원한다. AC++ 8장을 참고하기 바람.


STL AcceleratedC++/Chapter8