전체 글69 [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. [자료구조] - 덱(deque)의 구조와 원형 덱 구현 1. 덱(deque)이란? 덱(deque)이란, double-ended queue의 줄임말로 큐의 front와 rear에서 삽입과 삭제가 모두 가능한 자료구조이다. 간단히 말해, 양방향 큐라고 볼 수 있다. 2. 덱 구현을 위한 기본 함수 init (dq) - 덱 초기화 is_empty (dq) - 덱이 비어있는지 검사 is_full (dq) - 덱이 꽉 차있는지 검사 add_front (dq, e) - 덱의 맨 앞에 요소를 추가 add_rear (dq, e) - 덱의 맨 뒤에 요소를 추가 delete_front (dq) - 덱의 맨 앞 요소 반환 후 삭제 delete_rear (dq) - 덱의 맨 뒤 요소 반환 후 삭제 pop_front (dq) - 덱의 맨 앞 요소 반환(삭제X) pop_rear (d.. 2024. 1. 5. [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. [C/C++] - 입력 개수를 모를때 (EOF까지 입력받기) 1. EOF란? EOF란 End - Of -File을 뜻하는 말로, 파일의 끝에 도달했음을 의미한다. 파일의 끝인 경우에는 TRUE, 파일의 끝이 아닌 경우에는 FALSE를 반환한다. 주의! 마지막 입력에서 판단하는 것이 아니다. 마지막 입력 다음, 더 이상 읽을 데이터가 없을 경우에 EOF가 TRUE를 반환한다. 2. EOF인지 판단하는 방법 ① scanf 가 입력받은 인자의 갯수를 이용하기 scanf는 입력받은 인자의 개수를 반환하는 특성이 있다. 예를 들어, scanf(%d, %d, &a, &b); 를 통해 2개의 정수 a와 b를 정상적으로 입력받았다면, scanf의 값은 2가 된다. int a, b; //scanf를 통하여 2개의 인자 a와 b가 정상적으로 입력되었다면 while(scanf("%d.. 2023. 12. 13. 이전 1 ··· 7 8 9 10 11 12 다음