[C++] 조건부 연산자
조건부 연산자 사용법 expression ? expression : expression 조건 연산자(? :)는 피연산자 3개를 사용하는 삼항 연산자이다. 조건 연산자는 다음과 같이 사용된다. - 첫번째 피연산자는 암시적으로 bool 자료형으로 변환된다. - 첫번째 피연산자가 true(1) 이면 두 번째 피연산자가 계산된다. - 첫번째 피연산자가 false(0) 이면 세 번째 피연산자가 계산된다. 조건 연산자의 결과는 두 번째 또는 세 번째 피연산자가 계산된 결과이다. 마지막 피연산자 2개 중 1개만 조건식에서 계산된다. 조건식은 오른쪽과 왼쪽이 연결되어있으며, 첫번째 피연산자는 정수 계열 또는 포인터 형식이어야 한다. 조건부 연산자 예제 // expre_Expressions_with_the_Conditi..
2018.09.06
[C, C++] 메모리 함수 memset, memmove, memcpy, memcmp, memchr
자주 쓰이는 메모리 함수 정리 * memset 메모리 블록을 채운다. ptr로 시작하는 메모리 주소로부터 num 개의 바이트를 value 값으로 채운다. 이 때 value는 unsigned char 로 형변환 된다. #include // C++ 에서는 void * memset ( void * ptr, int value, size_t num ); memset 예제 #include #include int main () { char str[] = "almost every programmer should know memset!"; memset (str,'-',6); puts (str); return 0; } 실행 결과 ------ every programmer should know memset! * memmov..
2018.09.05
[C++] 반복자 (Iterator)
C++ 반복자(Iterator) C++ 라이브러리는 반복자를 제공하는데 이것을 사용하면 라이브러리의 방식대로 자료구조를 액세스 할 수 있다. 따라서 라이브러리가 효과적으로 동작한다는 것을 보장 할 수 있다는 장점이 있다. 즉, 포인터와 상당히 비슷하며, 컨테이너에 저장되어 있는 원소들을 참조할 때 사용한다. 추상적으로 말하자면, 반복자란 컨테이너에 저장되어 있는 모든 원소들을 전체적으로 훑어 나갈 때 사용하는, 일종의 포인터와 비슷한 객체라고 할 수 있다. 알고리즘 마다 각기 다른 방식으로 컨테이너를 훑어가기 때문에, 반복자에도 여러가지 종류가 있게 된다. 반복자의 성질 - 컨테이너와 컨테이너 안의 있는 요소를 구별 - 요소의 값 확인 - 컨테이너 안에 있는 요소들 간에 이동할 수 있는 연산 제공 - 컨..
2018.09.04
[C++] 자료형의 종류와 범위 그리고 WORD 와 DWORD
기본 자료형의 종류 구분 자료형 크기(byte) 범위 문자형 char 1 byte -128 ~ 127 unsigned char 1 byte 0 ~ 255 정수형 __int8 1 byte -128 ~ 127 __int16 2 byte -32,768 to 32,767 (signed) short (int) 2 byte -32,768 to 32,767 (unsigned) short (int) 2 byte 0 ~ 65,535 __int32 4 byte -2,147,483,648 ~ 2,147,483,647 (signed) int 4 byte -2,147,483,648 ~ 2,147,483,647 unsigned int 4 byte 0 ~ 4,294,967,295 (signed) long (int) 4 byte -..
2018.09.03
[C, C++] 프로그램 수행시간 측정
프로그램 수행시간 또는 실행시간 측정하는 법 프로그래밍 중 특정 구간에서 코드 실행 시간을 알아내야 하는 경우에 쓰이는 방법이다. C 또는 C++ 에서 프로그램 실행시간을 측정하는 방법은 크게 두 가지로 나뉘어 사용된다. 1. time 함수 이용하기 #include 헤더파일을 포함시키고 아래와 같이 사용한다. 이와 같은 방법은 ms 단위가 아닌 초(s) 단위로 측정된다. #include #include int main() { time_t start, end; double result; start = time(NULL); // 수행 시간 측정 시작 /* 수행시간 측정하고자 하는 코드 */ end = time(NULL); // 시간 측정 끝 result = (double)(end - start); // 결과..
2018.09.03
[C] printf 출력형식 %d %i %u %X %x %o %p %s %c %C %f %e %E %g %G
printf 출력 형식 %d %i %u %X %x %o %p %s %c %C %f %e %E %g %G type (형) : 인수의 형을 지정 d int값을 부호있는 10진수로 출력 i d와 같음 u int값을 부호없는 10진수로 출력 X int값을 부호없는 16진수로 출력 10~15은 'A'~'F'로 표시 x int값을 부호없는 16진수로 출력 10~15은 'a'~'f'로 표시 o int값을 부호없는 8진수로 출력 p 포인터값을 16진수로 출력 s 문자열 출력 c int값을 문자로 출력 C c와 같음 f double값을 소수로 출력 (예:12.566371) e double값을 지수로 출력 (예:1.256637e+001) E e와 같음 'e'가 'E'로 표시 (예:1.256637E+001)。 g 숫자값의 ..
2018.08.29
no image
[C] 포인터
C언어에서 포인터는 변수의 메모리 주소를 이용하여 함수를 넘나들며 값을 저장하기 위해 사용된다. 즉, 포인터는 값의 주소를 저장하기 위해 사용된다. 포인터 변수는 다음과 같이 * ( Asterisk, 애스터리스크)를 사용하여 선언된다. * 의 위치에 따른 차이는 없으며 모두 같은 뜻이다. int* numPtr; int * numPtr; int *numPtr; 포인터 변수를 선언했다면 아래와 같이 &로 변수의 주소를 구해서 포인터 변수에 저장한다. numPtr = # 즉, 포인터는 메모리의 특정 위치를 가리킬 때 사용한다. 아래 코드는 numPtr 이라는 포인터 변수가 int 형 변수 num 이 있는 공간을 가르키는 예제이다. numPtr이 가르키는 값을 변경할 경우 변수 num의 값도 당연히 변경..
2018.08.21
[C] 파일 목록 가져오기
파일 검색 함수는 특정한 조건에 맞는 파일을 검색한다. 예를 들어 a로 시작하고 확장자가 txt 인 모든 파일(*.txt)을 찾아 작업을 하고자 할 때 조건에 맞는 파일을 찾아야 한다. 파일을 검색하는 함수는 다음과 같다. long _findfirst( char *filespec, struct _finddata_t *fileinfo ); int _findnext( long handle, struct _finddata_t *fileinfo ); int _findclose( long handle ); findfirst 함수의 filespec 인수로 검색 식을 주면 조건에 맞는 첫번째 파일을 찾아 fileinfo 구조체에 검색된 파일의 정보를 채우고 검색 핸들을 리턴한다. 만약 조건에 맞지 않는다면 -1이 리..
2018.08.16
[C++] 전처리문의 종류
전처리문 : 실질적인 컴파일 이전에 미리 처리되는 문장을 말하며, 선행 처리기라고도 한다. 따라서 컴파일러는 사용자가 작성한 코드를 컴파일 하기 전에 전처리문에서 정의해놓은 작업을 먼저 수행하게 된다. 파일 처리를 위한 전처리문 : #include형태 처리를 위한 전처리문 : #define, #undef조건 처리를 위한 전처리문 : #if, #ifdef, #else, #elif, #endif에러 처리를 위한 전처리문 : #error디버깅을 위한 전처리문 : #line컴파일 옵션 처리를 위한 전처리문 : #pragma 조건 처리를 위한 전처리문은 어떤 조건에 대한 검사를 하고, 그 결과를 참(0이 아닌 값) 또는 거짓(0)으로 돌ㄹ준다. #if : ~이 참 이라면#ifdef : ~이 정의되어 있다면#els..
2018.08.05
[C++] STL 정리
STL(Standard Template Library) : C++의 템플릿을 사용하여 표준으로 정리된 라이브러리 - 반복자 / 컨테이너 / 알고리즘 함수객체 등의 라이브러리로 구성 컨테이너(Container) : 컨테이너란 기본 자료형과 유저가 정의한 자료형을 담는 일종의 자료구조 1. 시퀀스 컨테이너 일반적인 자료구조와 동일한 형태 (vector / list / string / deque ...) 자료를 입력한 순서대로 저장하기 때문에 저장, 검색, 알고리즘에 불리함 적은 양의 자료나 검색 속도가 중요하지 않은 경우에 사용 2. 연관 컨테이너 일정한 규칙에 따라 자료를 조직화하여 저장 (set / map / multiset / multimap ...) 자료를 정렬하여 저장하기 때문에 검색에 유리 많은 ..
2018.08.05
[Python] 4. Python 내장함수
출처 : https://wikidocs.net/32 05-5 내장 함수지금까지 파이썬으로 프로그래밍하기 위해 알아야 하는 대부분의 것들을 공부했다. 이제 여러분은 자신이 원하는 프로그램을 직접 만들 수 있을 것이다. 하지만 그 전에 먼저 여러분이 만들고자 하는 프로그램이 이미 만들어져 있는지 살펴보기 바란다. 물론 공부를 위해서라면 누군가 만들어 놓은 프로그램을 또 만들 수도 있다. 하지만 그런 목적이 아니라면 이미 만들어진 것을 다시 만드는 것은 불필요한 행동이다(Don’t Reinvent The Wheel, 이미 있는 것을 다시 만드느라 쓸데없이 시간을 낭비하지 말라). 그리고 이미 만들어진 프로그램들은 테스트 과정을 수도 없이 거쳤기 때문에 충분히 검증되어 있다. 따라서 무엇인가 새로운 프로그램을 ..
2017.07.17
[Python] python에서 opencv를 사용하여 image crop하기
출처 : python에서 opencv를 사용하여 image crop하기 /* * http://sosal.kr/ * made by so_Sal */ 이미지에서 원하는 도형에 해당되는 부분을 찾아, crop을 해보고자 한다.opencv 라이브러리를 사용할 것이다. 이 포스팅에서는 위의 사진에서 네모난 사진들을 crop해볼것이다.네모난 박스를 체크하고 해당 부분을 잘라 저장할 것이다. 1. python opencv library 설치 및 기타라이브러리 설치 python 버전을 확인한다. (3.6 버전) http://www.lfd.uci.edu/~gohlke/pythonlibs/ 사이트에 접속하여 버전에 맞는 opencv whl 파일을 다운받는다. 윈도우즈 64비트와 python 버전 3.6을 사용하고 있기 때..
2017.07.05