본문 바로가기

STL6

[C++] - 덱(deque) 사용법 정리 (STL) 덱(deque)이란? 덱(deque)이란, double-ended-queue의 줄임말로, 큐의 양쪽에서 원소를 삽입하거나 삭제할 수 있는 자료구조이다. 덱은 C++에서 많이 쓰이는 STL 자료구조 중 하나이다. 1. 헤더파일 #include using namespace std; deque를 사용하기 위해서는 헤더파일을 include 시켜주어야 한다. STL deque는 std namespace에 있기 때문에 cin이나 cout을 사용할 때와 같이 using namespace std;를 써주면 std::를 일일이 써주지 않아도 되어 편리하다. 2. deque 선언하기 deque 이름; #include #include using namespace std; int main(){ deque dq;//D라는 이름.. 2024. 1. 16.
[C++] - vector를 2차원으로 사용하기 (STL) vector는 동적으로 메모리를 할당한 배열이다. 기존 1차원 vector를 값을 초기화하여 선언하는 방법은 다음과 같았다. vector 이름 (크기, 초기값) ; ex) vector v; 2차원 vector를 선언하려면, vector의 데이터 타입에 vector를 또 담는다고 생각하면 된다. vectorv; → 벡터의 자료형에 또 다른 벡터가 들어간다. 2차원 벡터는 2차원 배열과 같이 대괄호를 이용한 v[i][j]로 각 원소에 접근이 가능하다. 1. 행이 m개, 열이 n개인 2차원 벡터를 0으로 초기화하여 선언 vector v(m, vector(n,0)); 벡터 v는 m개의 원소를 가지고 있으며, 이 m개의 원소들은 각각 n개의 원소를 0으로 초기화한 벡터를 담고 있다. int m, n; cin >>.. 2024. 1. 8.
[C++] - vector 사용법 정리 (STL) vector란? vector란 많이 쓰이는 STL 자료구조 중 하나로, 동적으로 메모리가 할당된 배열이다. 사용자가 직접 메모리를 동적 할당한 배열 (int* arr = new int[n])과는 달리 요소 수가 증가하거나 감소하면 메모리가 자동으로 늘어나고 줄어들어 메모리를 매우 효율적으로 관리할 수 있다. 또한 일반 배열처럼, 인덱스를 이용하여 모든 위치에 접근이 가능하다. 1. 헤더파일 #include using namespace std; vector를 사용하기 위해서는 헤더파일을 include시켜주어야 한다. STL vector는 std namespace에 있기 때문에 cout, cin을 사용할 때와 같이 using namespace std;를 추가해주면 편리하다. 2. vector 선언하기 1) .. 2024. 1. 6.
[C++] - sort()함수 사용법 정리(STL) 이전에 STL에 대해 설명했던 포스팅에서 알고리즘(algorithm)에 대하여 간단히 알아보았다. 오늘은 알고리즘의 템플릿 함수들 중, 정렬 시 유용하게 사용할 수 있는 sort() 함수에 대하여 알아보자. 자료구조와 알고리즘을 배우기 시작하면 선택 정렬, 삽입 정렬, 퀵 정렬, 병합 정렬, 버블 정렬, 힙 정렬 등등 다양한 정렬 방법에 대하여 공부하게 된다. 하지만 C++의 STL에는 이미 간단한 코드 몇줄로 정렬을 수행할 수 있는 라이브러리가 구현되어 있다. 따라서 복잡하게 정렬 알고리즘을 구현할 필요가 없다. (참고로 sort()의 시간 복잡도는 nlogn 이다.) sort() 사용법 sort함수는 배열의 원소들을 정렬할 때 사용하며, 기본적으로 오름차순으로 정렬한다. sort()함수를 사용하기 위.. 2024. 1. 2.
[C++] - map 사용법 정리 (STL) map이란? map은 많이 쓰이는 STL 자료구조 중 하나로, (key, value) 쌍을 저장할 수 있는 클래스이다. key는 중복된 값을 가질 수 없다는 특징이 있으며, 원소가 삽입될때 자동으로 오름차순 정렬되어 검색, 삽입, 삭제에 유리하다. (O(logn)을 보장한다.) 1. 헤더파일 C++에서 map을 사용하기 위해서는 헤더파일을 include해줘야한다. 코드 상단에 아래와 같이 한 줄만 적어주면 된다. #include 2. map 선언하기 fruit 이라는 이름을 가지고 있고, key값은 string 자료형, value 값은 int 자료형을 가진 map을 선언하는 코드이다. map fruit; 3. 원소 삽입 원소를 삽입할 때에는 insert() 함수를 이용한다. fruit.insert({ ".. 2023. 12. 30.
[C++] - STL(표준 템플릿 라이브러리)에 대하여 STL이란? STL이란, C++에서 제공하는 표준 템플릿 라이브러리 (Standard Template Library)이다. 간단히 말해, 다양한 자료구조와 알고리즘들을 템플릿으로 제공하는 라이브러리이다. STL에 포함되는 클래스와 함수들은 크게 3가지로 분류할 수 있는데, 컨테이너(container), 반복자(iterator), 알고리즘(algorithm)이다. 컨테이너 (container) 자료구조를 구현해 놓은 클래스이다. 일반적으로 많이 알려진 리스트, 큐, 스택을 포함하여 다양한 자료구조들이 구현되어 있다. 컨테이너는 크게 3가지로 분류할 수 있다. 순차 컨테이너 (Sequence Container) 연속적인 메모리 공간에 순서대로 값을 저장한다. vector, deque, list 등이 있다. .. 2023. 12. 28.