본문 바로가기

C++

[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++][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++][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의 내부 구현은.. 더보기
[프로그래밍] 2의 보수 구하기, 왜 2의 보수는 음수인가? 인트로 안녕하세요. 오늘은 프로그래밍의 개념 중 하나인 '보수'에 대해 포스팅하겠습니다. 보수란 '보충해주는 수'라는 의미를 가지고 있습니다. 10진수 10이 있을때, 4의 보수를 구하라고 하면 4를 더해서 10이 되는 숫자인 6이 '10에 대한 4의 보수'입니다. 즉, N이 있을때, N의 '2의 보수'를 구하라고 하면 다 더해서 N이 되는 숫자인 그 '어떤 수'가 보수인 것이죠. 2진수에서 2의 보수( two's complement )는 음수를 나타냅니다. 목차 1) 왜 2의 보수는 음수인가? 2) 2의 보수를 구하는 과정 3) 2의 보수 구하는 방법 정리 4) 2진법 계산기 사이트 소개 1) 왜 2의 보수는 음수인가? 10진수에서 2에 대한 10의 보수는 8입니다. 즉 2 + 8 = 10 이기 때문이.. 더보기
i+1 과 i++ 의 차이점 인트로 우리는 조건문 또는 반복문, 구문을 작성할때 i+1또는 i++을 넣습니다. 이 두 가지 연산자 사용은 명확히 다릅니다. i+1로 쓰게 된다면 현재 i값에 1을 더한 값을 쓰겠다는 의미이므로 i값이 증가하지 않고, i++로 쓰게 된다면 i = i+1의 의미이므로 i값은 증가합니다. 예시 1) i+1을 쓰는 경우 for(int i=0;i 더보기
[C++][Vector] 범위 기반 반복문 인트로 안녕하세요. 오늘은 범위기반 for문에 대해서 알아보겠습니다. 범위기반 for문은 C++11에서 적용되었다고 합니다. (ISO가 승인한 2011년 8월 12일에 승인한 C++ 프로그래밍 언어의 최신판) 기존의 복잡한 for문에서 문법이 확장되어 간결한 형태로 사용할 수 있습니다. (구 버전) 기존의 형태 기존 for문은 아래와 같이 시작인덱스, 종료조건, 증감연산을 주어주어야했습니다. 1) 인덱스 기반 기존 접근형태 vector v; for (int i=0; i 더보기
[C++][형변환] int에서 char*, char*에서 int로 변경하기 인트로 안녕하세요. 오늘은 C++에서 int 에서 char*/char* 에서 int 로 변경하는 방법에 대해서 포스팅하겠습니다. (형변환) int char* : https://life-with-coding.tistory.com/284 (형변환) int string : https://life-with-coding.tistory.com/283 int char* 형변환 1) int 에서 char*로 변경하기 int data = 5; char temp[2] = ""; itoa(data, temp, 10); 그렇지만 itoa를 그냥 쓰게 되면, 다음과 같은 Visual Studio오류가 발생합니다. 오류 C4996 'itoa' The POSIX name for this item is deprecated. Inst.. 더보기
[OpenCV][C++] opencv tracking 함수 opencv 함수 중 tracking 구현 1) boundingBox 초기화 tracker->init(video.frame[0], boundingbox); 2) tracker를 update하고 init bondingbox와 가장 유사한 새로운 bounding box를 찾는다. tracker->update(video.frame[0], boundingbox); 3) 이미지에 사각형그리기 rectangle(video.frame[i], bbox, Scalar(0,255,0), 2,1); //인자의 순서는 이미지, bundingbox,사각형 그릴 색상, 사각형의 굵기, shift값 더보기