본문 바로가기

BE/C++

[C++][STL] Queue 기본 사용법 및 예제 인트로 안녕하세요. 오늘은 C++의 STL중 하나인 Queue(큐) 기본 함수에 대해서 알아보도록 하겠습니다. Queue 는 자료구조의 대표적인 FIFO(First In First Out)인 알고리즘으로, 코딩테스트에 많이 나오는 알고리즘입니다. 목차 1. 큐란 ? 2. 큐 헤더 파일 3. 큐 기본 함수 (삽입/삭제, 사이즈, 예시 등) 📌 1. 큐란? 큐(Queue)은 대표적인 FIFO(First In First Out) 구조입니다. 따라서 제일 처음에 넣은 데이터가 처음으로 빠져나오는 것을 볼 수 있습니다. 큐의 기본함수에는 push, pop, empty, front, back, swap 등이 있습니다. 스택과 달리 front 원소와 back 원소에 접근할 수 있다는 점이 특징입니다. 📌2. 큐 헤더.. 더보기
[C++][STL] Vector 기본 사용법 및 예제 활용 인트로 안녕하세요! 오늘은 C++ STL중 하나인 벡터(Vector)의 기본 함수와 예제에 대해서 알아보도록 하겠습니다. 벡터 기본함수는 push_back, pop_back, front, back, clear, begin, end, rbegin, rend, reverse 등이 있습니다. 목차 1) Vector란? 2) Vector의 헤더파일 3) Vector의 생성 방법 4) Vector의 멤버 함수(접근, 삽입/삭제, 크기 등) 5) for문, iterator로 접근하는 Vector6) Pair, Tuple 클래스와의 활용 1. Vector란? Vector(Queue)은 동적 배열 구조를 C++로 구현한 것으로 맨 끝에서만 삽입 및 삭제가 일어나는 구조입니다. 일반 배열과 차이점이라면 동적으로 크기가 .. 더보기
[C++] 날짜를 초로 변환 (date to seconds) 인트로 안녕하세요. 오늘은 날짜를 초로 변환하는 방법에 대하여 포스팅하겠습니다. C++에는 JAVA 와 달리 Calendar, SimpleDateFormat 클래스가 없기 때문에 두 날짜를 비교하기 위해서는 초(seconds)로 변환해 비교해야합니다. 문자열로 나타내어져 있는 시간을 파싱하여 연,월,일, 시,분,초로 나누고 시간을 초로 변환해보겠습니다. 입출력 형태 입력 형태 : "2020:11:03 16:09:30" (2020년 11월 3일 16시 9분 30초") 출력형태 : 현재 날짜가 몇 초인지 출력 문자열 파싱 stringstream 클래스를 통해 long long 타입에 맞는 데이터(time)만 순서대로 빼냅니다. 데이터(time) : 연(year) / 월(month) / 일(day) / 시(h.. 더보기
[C++][STL] Stack 기본 사용법 및 예제 인트로 오늘은 C++의 STL중 하나인 Stack(스택) 기본 함수에 대해서 알아보도록 하겠습니다. 목차 1. 스택(Stack)이란? 2. 스택 헤더 파일 3. 스택 기본 함수 1. 스택이란? 스택(Stack)은 대표적인 LIFO(Last In First Out) 구조입니다. 따라서 제일 마지막에 넣은 데이터가 처음으로 빠져나오는 것을 볼 수 있습니다. 스택의 기본함수에는 push, pop, empty, top, swap 등이 있습니다. 2. 스택 헤더 파일 stack STL을 사용하기 위해서는#include 헤더파일을 포함해야 합니다 . stack 이름 ; 으로 stack을 선언합니다. #include stack stack; 3. 스택 기본 함수 ▷ 스택에 데이터 추가하기 스택이름.push(데이터) 형.. 더보기
[C++] 이차원 배열 동적할당하기 동적할당(dynamic memory allocation)이란? 특정 시점에 원하는 만큼 생성하고, 삭제할 수 있습니다. C++ 에서는 new 생성자에 의해 생성되고, delete 에 의해 삭제됩니다. 즉, 메모리의 크기가 프로그램이 실행하는 동안 동적으로 결정되는 형태입니다. 따라서 메모리의 할당 시점, 해제 시점을 개발자가 마음대로 정의할 수 있다는 장점이 있습니다. 또한, 정적변수는 메모리의 스택에 저장되는 반면 동적할당을 통해 선언한 변수는 메모리의 힙영역에 저장됩니다. 메모리 할당이란? 컴퓨터로부터 메모리를 얻어오는 일입니다. 즉, 메모리를 확보하는 과정입니다. 메모리 해제란? 확보한 메모리를 컴퓨터에 반납하는 과정입니다. 메모리 누수란? 동적할당 후, 메모리를 해제하지 않으면 메모리의 사용량이 .. 더보기
[C++] stringstream 사용법 인트로 안녕하세요. 오늘은 C++의 Stringstream 사용법에 대해 포스팅하겠습니다. C++에서 여러가지 자료형이 한 줄에 들어오면 파싱해서 용도에 맞게 사용할 필요가 있는데요. 특히 "이름 날짜 내용"과 같은 문자열로 한 줄의 데이터로 들어오면 각각 이름, 날짜, 내용등으로 파싱해서 사용하기 위해 많이 활용됩니다. 그 때 stringstream이 굉장히 유용한 라이브러리입니다. 1) 문자열을 나누는 stringstream C++에서 stringstream은 주어진 문자열에서 필요한 자료형에 맞는 정보를 꺼낼 때 유용하게 사용됩니다. stringstream에서 공백과 '\n'을 제외하고 문자열에서 맞는 자료형의 정보를 빼냅니다. ˙ #include 전처리 헤더를 필수로 포함해야 합니다. ˙ stre.. 더보기
[C++][STL] map 사용법 정리 인트로 안녕하세요. 오늘은 C++ STL 연관 컨테이너 중 하나인 map에 대해 알려드리겠습니다. 목차 1) Map이란? 2) Map 기본 형태 3) Map 정렬 4) Map 사용방법 - 헤더 포함 - map 선언 - search : map에서 데이터 찾기 - insert : map에서 데이터 삽입 - for : 반복문 사용하기(인덱스 기반, 범위 기반) - delete: map에서 데이터 삭제 - code : 전체 코드 1) MAP이란? map은 각 노드가 key와 value 쌍으로 이루어진 트리입니다. 특히, 중복을 허용하지 않습니다. 따라서 map은 first, second가 있는 pair 객체로 저장되는 데 first- key로 second- value로 저장됩니다. C++의 map의 내부 구현은.. 더보기
[C++][OpenCV] Opencv과 VisualStudio 연동하기 인트로 안녕하세요. 오늘은 OpenCV와 VisualStudio와 연동하는 방법에 대해 포스팅하겠습니다. OpenCV 는 영상처리 등에 많이 쓰이는 컴퓨터 비전 라이브러리입니다. 이미지 프로세싱에 많이 쓰이곤 합니다. 1. OpenCV 설치하기 내가 사용하고 싶은 OpenCV 버전을 선택합니다. (비교적 최신 버전으로) OpenCV 페이지 바로가기 : https://opencv.org/releases/ Releases opencv.org 2. Visual Studio 프로젝트 생성하기 1) Visual Studio의 프로젝트 속성에 Debug x64세팅 3. Visual Studio 프로젝트 속성에서 경로 설정하기 1) 디렉터리 경로 추가 C/C++ > 일반 > 추가 포함 디렉터리에 경로 추가 경로 : .. 더보기