<개인공부> 275

[C++] template(템플릿)에 관하여 2 (클래스 템플릿, 템플릿 특수화)

안녕하세요. BlockDMask 입니다.오늘은 C++ template(템플릿)에 관하여 두번째 시간입니다. 클래스 템플레이트와 템플레이트 특수화에 대해서 배울것 입니다.혹시 template이 무엇인지 다시한번 복습이 필요하신분들은. [바로가기] 1) 템플릿 특수화 (template specialization) 템플릿(template)을 사용할때, 특수한 자료형에 대해서는 다른 처리를 하고 싶을때 사용합니다. 사용 방법은 아래처럼 template 가 정의되어있을때, 같은 함수에 대해서, 재정의?하고싶은 데이터 타입을 이용해서 아래 주황 글씨처럼 재정의 하면됩니다. T를 없애고 넣고싶은 데이터 타입을 넣습니다. 123456789101112template T sum(T a, T b){ return a + b;..

[C++] template(템플릿) 에 관하여 1 (템플릿이란, 함수 템플릿)

안녕하세요 BlockDMask 입니다.오늘은 C++에서 자료형을 마음대로 가지고 놀 수 있는, template (템플릿) 에 대해 알아보겠습니다. 1) 템플릿(Template) 이란.함수나 클래스를 개별적으로 다시 작성하지 않아도, 여러 자료 형으로 사용할 수 있도록 하게 만들어 놓은 틀. 함수 템플릿(Function Template)와 클래스 템플릿(Class Template) 로 나누어집니다.개인적으로 비유를 들자면 펜중에.. 5색펜 이런거 있잖아요. 펜이 한자루 인데. 여러가지 색(자료형)을 우리가 그때그때 쓸 수 있잖아요. template는 여러개의 색(자료형)을 모아놓은 하나의 펜 케이스 그때그때 다른 색(자료형)을 눌러서 사용할 수 있다. 일반 자료형들이 [왼쪽] 펜들 이라고 생각한다면 -> ..

[C++] string 클래스 변환(atoi, c_str()) 등 정리

C++에서 string, char *, int 간의 변환에 대해서 알아보겠습니다.(char* -> int 로 바꾸는 것을 보고싶다면, [바로가기])(string -> int 로 바꾸는 것을 보고싶다면, [바로가기])(int -> string 으로 바로 바꾸는 것을 보고싶다면 [바로가기])(C++ string에 대한 총정리가 보고싶다면 [바로가기]) 1) 함수 설명int atoi (const char * str) 헤더파일(C) : 헤더파일(CPP) : 설명 : C style의 문자열을 입력받아서 int (숫자) 타입으로 변환하여 리턴한다.std::string c_str() 반환형이 char * 이므로, 해당하는 string의 첫번재 문자의 주소값(포인터)를 반환합니다. 사용방법은 아래에 나와있습니다. 2)..

[C++] string 클래스 정리

C++ string 클래스 함수를 정리해보았습니다이쪽으로오세요~ 리뉴얼한 C++ string 총정리편 [바로가기] 1) 헤더파일using namespace std; 를 추가해주어야 합니다.2) 여러 함수 및 초기화 방법들생성1 : string str1("BlockDMask");생성2 : string str1; str1 = "BlockDMask";생성3 : string str2(str1); //다른 string 객체 인자로. 길이1 : str.length();길이2 : str.size(); 한 문자 반환 받기 : str.at(n); //n번째 있는 문자 반환, 배열이라고 생각하면 됨. 0부터 시작. //str[n] 문자열 처럼도 사용가능.문자열 찾기 : str.find("문자열"); //찾는 문자열의 첫번..

[C++] string 클래스 만들어보기.

공부를 하기 위해 String class 을 직접 만들어 보았습니다.0) 설명 (Intro)C++을 학습하다가 String 클래스를 직접 만들어 보는 실습이 있어서 작성하게 되었습니다.char * , 동적할당을 이용하여서 만들었습니다.string s1("문자열") 과 string s1 = "문자열" 을 통하여 문자열을 초기화 및 입력이 가능하도록 하였습니다.또한 string의 덧셈(+), 더하고 대입(+=), 출력(), 비교(==)를 연산자 오버로딩(operator)을 통하여 만들었습니다.1) 코드 (Code) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859..

[C언어] 동적할당 정리1 (malloc, realloc, calloc, free 함수)

1) 함수 종류 및 설명.아래 링크로 가시면 좀더 자세히 나와있습니다. 아래 링크가 이번에 작성한 내용입니다.2018/10/31 - [/[C언어 & C++ 언어]] - [C 언어] 동적할당 정리2 (malloc, free 예제)프로그램 실행 도중에 필요한 메모리 공간을 할당하고 사용 후 해당 공간을 해제하는 것. 헤더파일 : 메모리 할당 함수 - malloc 메모리 할당 및 초기화 - calloc 메모리 추가 할당 - realloc 메모리 해제 함수 - free. 2) 함수 원형 void *malloc(size_t size); 할당받을 메모리 크기를 인자로 받음ex) int * arr = (int *)malloc(sizeof(int) * n); //인자의 갯수가 n개의 배열을 동적할당한다(그만큼의 메모리..

[운영체제] 스케줄링 알고리즘

안녕하세요 BlockDMask 입니다.오늘은, 운영체제에서 프로세스의 스케줄링에 대해 알아보겠습니다. 1) 스케줄링(Scheduling)이란.실행중인 모든 프로세스들에게 골고루 CPU를 할당하는일. 멀티 프로세스를 지원하는 운영체제의 스케줄러가 담당한다. 스케줄러는 일정한 기준(스케줄링 알고리즘)에 의거하여 스케줄링을 한다.2) 선점형 운영체제, 비선점형 운영체제 (Preemptive OS, non-preemptive OS)Preemptive OS - 현재 실행중인 프로세스A보다 높은 우선순위를 가진 프로세스B가 등장하면 스케줄러에 의해 실행 순서가 조절된다. - 우선순위가 높은놈이 오면 현재 running 상태에 있는 프로세스A가 ready상태로 밀려가고 프로세스 B가 running 상태로 CPU를 할..

[Dev C++ 설정] 괄호 자동완성 없애는법.

안녕하세요!! BlockDMask 입니다. 오늘은 Dev C++ 설정 변경에 대해서 알아보도록 하겠습니다. 저는 큰따옴표나 괄호 등을 제가 직접 치는 습관이 들어서, dev C++ 에서 괄호나 작은 따옴표 큰 따옴표 등이 자동완성되서 불편했습니다.. 매우.자동완성에 불편함을 느끼시는 분들이 편하게 setting 할 수 있도록 정리해보려고 합니다.>tools>Editor Options 를 클릭합니다. Completion>SymbolCompletion 창으로 들어갑니다.! 그다음 Enable symbol completion을 체크 해제!!!! 하고 OK를 누르면. 이제 더이상 자동완성이 되지 않습니다. 간단하군요.그럼 다시 코딩하러 가보겠습니다.

[운영체제] 프로세스란? (스케줄링, 메모리구조, 상태변화)

1. 프로세스(process)란?프로세스(process)란 실행중에 있는 프로그램(Program)을 의미한다. 스케줄링의 대상이 되는 작업(task)과 같은 의미로 쓰인다. 프로세스 내부에는 최소 하나의 스레드(thread)를 가지고있는데, 실제로는 스레드(thread)단위로 스케줄링을 한다. 하드디스크에 있는 프로그램을 실행하면, 실행을 위해서 메모리 할당이 이루어지고, 할당된 메모리 공간으로 바이너리 코드가 올라가게 된다. 이 순간부터 프로세스라 불린다. 2. 프로세스(process)의 메모리 구조 (프로세스 하나당 하나씩 존재한다.) + 손으로 그린.... 메모리 구조.. (똥손입니다.)Code 영역 : 프로그램을 실행시키는 실행 파일 내의 명령어들이 올라갑니다. (쉽게 말하면 소스코드가 올라간다고..

[UNIX] 시그널(Signal) 기본설명 및 함수

Unix에서 사용하는 Signal에 대해 알아보겠습니다. (Linux도 동일하려나.. 어짜피 조상은 같고 커널에서 제공하는 시스템 콜이니까..)1. 시그널(Signal) 이란?: Signal이란 Software interrupt로, process에 무엇인가 발생했음을 알리는 간단한 메시지를 비동기적으로 보내는 것이다.: Signal을 받은 프로세스는 Signal에 따른 미리 지정된 기본 동작(default action)을 수행할 수도 있고, 사용자가 미리 정의해 놓은 함수에 의해서 무시하거나, 특별한 처리를 할 수 있다.: 예를 들어 프로세스가 진행중에 Ctrl + c 를 누른다거나, 프로세스에 kill 명령이 내려지는것이 발생했을 때 Signal이 발생한다. 2. 시그널(Signal)의 종류: 시그널은..