list 란 ?
- 연결 리스트를 C++로 구현한것
- 양 끝의 위치 삽입 삭제 가능
- 임의의 위치에 삽입 삭제 가능
list 사용법
헤더
-#include<list>
- 선언방법
list<데이터 타입>리스트 이름; |
list<데이터 타입>리스트 이름(크기); |
list<데이터 타입>리스트 이름(크기, 초기화); |
*c++11이상 버전 부터 list<데이터 타입>리스트 이름{a,b,c,d,e...}; 초기화 가능 |
-삽입, 삭제
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 |