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

STL/list: Difference between revisions

From ZeroWiki
imported>Unknown
No edit summary
 
(Repair batch-0003 pages from live compare)
 
Line 36: Line 36:
  int main(){
  int main(){
  const int INDEX_MAX = 5;
  const int INDEX_MAX = 5;
  int data[] = {1,2,3,4,5};
  int data[] = {1,2,3,4,5};
 
 
  list<int> l(&data[0], &data[INDEX_MAX]);
  list<int> l(&data[0], &data[INDEX_MAX]);
   
   
   
   
Line 69: Line 69:
----
----
[[STL]] [[AcceleratedC++/Chapter8]]
[[STL]] [[AcceleratedC++/Chapter8]]

Latest revision as of 00:29, 27 March 2026

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