티스토리 뷰

Algorithm/C++ STL

[C++] [STL] 4. list

쟌쥰 2019. 11. 29. 18:15

list 주요 함수

<iterator = 반복자> 

  • begin() : beginning iterator 반환
  • end() : end iterator 반환

<추가 및 삭제>

  • push_front(element) : 리스트 제일 앞에 원소 추가 
  • pop_front() : 리스트 제일 앞에 원소 삭제 
  • push_back(element) : 리스트 제일 뒤에 원소 추가 
  • pop_back() : 리스트 제일 뒤에 원소 삭제 
  • insert(iterator, element) : iterator가 가리키는 부분"앞"에 원소추가 
  • erase(iterator) : iterator가 가리키는 부분에 원소 삭제

<조회>

  • *iterator : iterator가 가리키는 원소에 접근 
  • front() : 첫번째 원소 반환 
  • back() : 마지막 원소 반환

<기타>

  • empty() : 리스트가 비어있음 true 아님 false반환 
  • size() : 리스트 원소들의 갯수를 반환

 

예제 코드

#include<list>

int main(void) {
	list<int> l;

	//push_back
	//5 6 7 8 9 10
	l.push_back(5);
	l.push_back(6);
	l.push_back(7);
	l.push_back(8);
	l.push_back(9);
	l.push_back(10);

	//pop_back
	//5 6 7 8 9
	l.pop_back();

	//push_front
	//0 1 3 4 5 6 7 8 9
	l.push_front(4);
	l.push_front(3);
	l.push_front(1);
	l.push_front(0);

	//pop_front
	//1 3 4 5 6 7 8 9
	l.pop_front();

	//front and back
	cout << "list front value : " << l.front() << endl;
	cout << "list end value : " << l.back() << endl;

	//size
	cout << "list size : " << l.size() << endl;

	//empty
	cout << "Is it empty? : " << (l.empty() ? "yes" : "no") << endl;

	//iterator
	list<int>::iterator begin_iter = l.begin();
	//auto begin_iter1 = l.begin(); //이렇게도 가능
	list<int>::iterator end_iter = l.end();
	//auto end_iter1 = l.end(); //이렇게도 가능

	//insert
	begin_iter++; //2번째를 가리키는 iterator 
	l.insert(begin_iter, 2);
	//erase
	end_iter--; //마지막 원소를 가리키는 iterator
	l.erase(end_iter);
	//확인차 출력한번
	for (list<int>::iterator i = l.begin(); i != l.end(); i++) {
		cout << *i << ' ';
	}

	//*iterator : 원소 접근
	cout << "list" << distance(l.begin(), begin_iter) + 1 << "element : " << *begin_iter << endl;
}

'Algorithm > C++ STL' 카테고리의 다른 글

[C++] [STL] 6. hash_map  (0) 2019.11.29
[C++] [STL] 5. map  (0) 2019.11.29
[C++] [STL] 3. vector  (0) 2019.11.29
[C++] [STL] 2. queue  (0) 2019.11.29
[C++] [STL] 1. stack  (0) 2019.11.29
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함