list 란 ?

- 연결 리스트를 C++로 구현한것

- 양 끝의 위치 삽입 삭제 가능

- 임의의 위치에 삽입 삭제 가능

 

list 사용법

헤더

-#include<list>

 

- 선언방법

list<데이터 타입>리스트 이름; 
list<데이터 타입>리스트 이름(크기);
list<데이터 타입>리스트 이름(크기, 초기화);
*c++11이상 버전 부터 list<데이터 타입>리스트 이름{a,b,c,d,e...}; 초기화 가능

list 선언방법

 

-삽입, 삭제

push_front(데이터); 리스트 맨 앞에 데이터 추가
push_back(데이터); 리스트 맨 뒤에 데이터 추가
insert(iterator, 데이터); iterator가 가르키는 부분 앞에 데이터 추가
pop_front(); 리스트 맨 앞의 데이터 삭제
pop_back(); 리스트 맨 뒤의 데이터 삭제
erase(iterator); iterator가 가르키는 부분의 원소 삭제

 

총 코드

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

int main()
{
	//list<데이터 타입>리스트 이름; 
	list<int> list1;
	//list<데이터 타입>리스트 이름(크기);
	list<int> list2(5);
	//list<데이터 타입>리스트 이름(크기, 초기화);
	list<int> list3(5, 10);

	for (auto i : list2)
		cout << i << ", ";
	cout << endl;
	for (auto i : list3)
		cout << i << ", ";
	cout << endl;

	//push_back(데이터);
	list1.push_back(7);
	list1.push_back(9);
	list1.push_back(10);
	//push_front(데이터);
	list1.push_front(6);
	list1.push_front(5);
	list1.push_front(4);
	cout << "push_back, push_front 데이터 삽입" << endl;
	for (auto i : list1)
		cout << i << ", ";
	cout << endl;
	list<int>::iterator iter = list1.begin();
	iter++;
	iter++;
	iter++;
	iter++;
	cout << "insert 데이터 삽입" << endl;
	//insert(iterator, 데이터);
	list1.insert(iter, 8);

	for (auto i : list1)
		cout << i << ", ";
	cout << endl;
	//pop_front();
	list1.pop_front();
	list1.pop_front();
	//pop_back();
	list1.pop_back();
	list1.pop_back();

	//cout << "pop_front(), pop_back() 데이터 제거" << endl;
	for (auto i : list1)
		cout << i << ", ";
	cout << endl;
	
	iter = list1.begin();
	iter++;
	cout << "erase 데이터 제거" << endl;
	//erase(iterator);
	list1.erase(iter);

	for (auto i : list1)
		cout << i << ", ";
	cout << endl;
}

'프로그래밍 공부 > STL' 카테고리의 다른 글

문자열 처리함수 c_str()  (0) 2022.02.27
C++ STL set & multiset  (0) 2022.02.17
C++ STL deque란?  (0) 2022.02.17
STL vector 란?  (0) 2022.02.13
C++ STL 이란?  (0) 2022.02.12

+ Recent posts