list는 컨테이너의 모든 위치에서 접근이 가능한 컨테이너 입니다.
양방향으로 빠른 삽입 및 삭제가 가능합니다.
하지만 컨테이너의 요소에 임의로 접근할 수 없습니다.
선언방법을 알아봅시다.
#include<list>
먼저 전처리기에 include를 해야합니다.
int형의 자료를 저장하는 int_list라는
이름의 list를 만든다고 한다면
list<int> int_list;
이런식으로 선언을 하면 됩니다.
사용방법을 알아 봅시다.
양쪽으로 접근이 가능하기 때문에
앞에 자료를 저장할 때는
push_front를 사용합니다.
int_list.push_front(넣을 자료);
뒤에 자료를 저장할 때는
push_back를 사용합니다.
int_list.push_back(넣을 자료);
지우는방법은 erase를 사용합니다.
이때 원하는 위치를 알아야 하는데
여기서 iterator를 이용한 위치 값을
사용하여 원하는 위치의 값을 삭제합니다.
list<int>::iterator iter= int_list.begin();
int_list.erase(iter);
삽입을 하는 방법은 insert를 사용합니다.
이때 원하는 위치를 알아야 하는데
여기서 iterator를 이용한 위치 값을
사용하여 원하는 위치의 값을 삽입합니다.
list<int>::iterator iter= int_list.begin();
int_list.insert(iter);
첫번째 데이터를 확인하는 방법도 있습니다.
front를 사용하면 첫번째 데이터를 반환 하게 됩니다.
cout<<int_list.front();
안의 데이터의 갯수를 확인하는 방법도 있습니다.
size를 사용하면 안의 데이터의 수를 반환 하게 됩니다.
cout<<int_list.size();
안의 데이터가 비어 있는지 확인하는 방법도 있습니다.
empty 사용하면 안의 데이터의 수를 반환 하게 됩니다.
if (int_list.empty())
empty자체가 bool타입으로 반환값을 갖기 때문에
이런식으로 조건문으로 사용하시면 됩니다.
간단한 예제 입니다.
#include<iostream>
#include<list>
using namespace std;
int main()
{
list<int> int_list;
int_list.push_back(1);
int_list.push_back(2);
int_list.push_back(3);
int_list.push_front(4);
int_list.push_front(5);
if (int_list.empty())
cout << "Is empty" << endl;
else
cout << "This size : " << int_list.size()<< endl;
for (int i : int_list)
{
cout << i << endl; // 출력
}
list<int>::iterator iter = int_list.begin();
iter++;
cout << "2번째에 4삭제" << endl;
int_list.erase(iter);
iter = int_list.begin();
iter++;
cout << "2번째에 9삽입" << endl;
int_list.insert(iter, 9);
for (int i : int_list)
{
cout << i << endl; //출력
}
cout<<"첫번 째 값 : "<<int_list.front()<<endl;
cout << "모두 지우기" << endl;
int_list.clear();
if (int_list.empty())
cout << "Is empty" << endl;
else
cout << "This size : " << int_list.size() << endl;
return 0;
}
실행화면 입니다.
'프로그래밍 > c++ STL' 카테고리의 다른 글
[c++ STL] Multimap 기본 사용법 및 예제 (1) | 2020.02.04 |
---|---|
[c++ STL] Map 기본 사용법 및 예제 (0) | 2020.02.03 |
[c++ STL] Stack 기본 사용법 및 예제 (0) | 2020.01.31 |
[c++ STL] Queue 기본 사용법 및 예제 (0) | 2020.01.31 |
[c++ STL] Deque 기본 사용법 및 예제 (0) | 2020.01.10 |