[C++] C++ STL list 기본 사용법과 예제

C++에서 list 사용법을 간단하게 알아보자


환경 및 선수조건

  • C++


리스트 기본 함수

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 <iostream>
#include <list>

using namespace std;

int main(){

	list<int> l;


	// push_back
	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
	l.pop_back();


	// push_front
	l.push_front(4);
	l.push_front(3);
	l.push_front(1);
	l.push_front(0);


	// pop_front
	l.pop_front();


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


	// size
	cout << "list size : " << l.size() << '\n';


	// empty
	cout << "Is it empty? : " << (l.empty() ? "Yes" : "No") << '\n';


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


	// insert
	begin_iter++; // 2번째를 가리키는 iterator
	l.insert(begin_iter, 2);


	// erase
	end_iter--; // 마지막 원소를 가리키는 iterator
	l.erase(end_iter);


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

	return 0;

}


[Linux] 쉘 스크립트에서 멀티프로세스(혹은 스레드) 기능 사용하기

> 백그라운드로 명령어를 실행해서 병렬적으로 실행되는 멀티 프로세스 환경을 만들어보자.## 환경- Linux 기반 시스템- Bash shell(/bin/bash)## 멀티프로세스? 병렬처리? 멀티스레드? 백그라운드 프로세스?- 여기서 진행할 방식...… Continue reading