반응형

Programing/C- programing 41

C++ : Const 함수 속성

/* * http://sosal.tistory.com/ * made by so_Sal */ Const는, 일반적으로 변수에 쓰이며, 선언할 때 정의된 값을 변경하지 못하게 하기 위한 '속성' 입니다. 하지만 변수 뿐만아니라 함수에도 const 속성은 사용됩니다. const 함수의 특징 - 멤버 변수의 값을 변경하지 않는 멤버 함수 즉, 데이터를 수정하는 함수가 아닐 때, 개발자가 실수로 멤버변수의 값을 바꾸지 못하도록 하는 보안장치라고 볼 수 있습니다. - 간단한 const 속성을 가진 함수의 선언 방법 함수에 const 속성을 넣는 방법은, 일반 변수 선언과 다르지 않습니다. const void func(); - const 속성을 가진 객체 멤버 함수를 선언하는 방법 class{ ~ void func(..

C++ - inline function 인라인 함수

/* * http://sosal.tistory.com/ * made by so_Sal */ 인라인 함수 : 일반적인 함수를 호출할 때, 새로운 스택을 생성하여 프로그램 카운트 루틴을 새롭게 시작하게 되는데, 이경우 성능 저하를 초래하게 된다. 인라인 함수는 실제 함수를 호출하는것이 아닌, 정의된 함수가 호출시기의 루틴에 그대로 코드를 옮겨놓는것과 같은 결과를 만들어 낸다. 정의를 보고도 잘 이해가 안가면, 간단한 예제를 통해서 쉽게 이해하실 수 있습니다. /* * 아래는 사용자가 작성한 코드입니다. * 함수에 inline 속성을 주었습니다. */ #include using namespace std; inline void print(){ cout

Topological sort 알고리즘

/* * http://sosal.tistory.com/ * made by so_Sal */ GCC ++ 환경입니다. 인하대학교 유원희 교수님 이산수학 이산수학 기말 프로젝트였는데 근원노드를 찾아가는 부분에서 코드가 좀 지져분해졌네요. 알고리즘 책이나 인터넷에서 좀 찾아보면 좋은 코드들이 많은데.. 첨부터 뚝심으로 혼자 짜겠다고 한 결과가 -.- 참;; 좀 더럽습니다 ㅠㅠ. input파일로부터 노드와 간선을 읽어옵니다.input ex) a b b c c d d f e f f g 결과값을 output이란 파일로 저장합니다. #include #include #include #include using namespace std; class TP_sort{ private: int **matrix; //행렬, 동적으..

Default Parameter를 이용한 피보나치 수열

/* * http://sosal.tistory.com/ * made by so_Sal */ 디폴트 파라미터는, 함수의 매개변수에 자동으로 값을 넣어주도록 합니다. 아래 피보나치 함수(재귀)로 예를 들것인데, int fibo(int depth,int a=0,int b=1); 정의부분을 보면 a,b 매개변수에 값을 0,1을 주도록 되어있습니다. 메인함수나 다른 루틴에서 위 함수를 호출할 때 fibo(0) 은 곧 fibo(0,0,1)을 의미하고, fibo(5,1) 은 곧 fibo(5,1,1)을 의미합니다. fibo(5,5,3) 은 곧 fibo(5,5,3)을 의미합니다. 간단하죠? , 아래는 디폴트 파라미터의 예제입니다. 중요한것은 Default parameter를 구현할 때, 정의 부분에서 값을 넣어주되, 선..

이진 탐색트리 삭제 포함 소스

/* * http://sosal.tistory.com/ * made by so_Sal */ 애혀.. 삭제 추가 되게 어렵네요.. 뇌를자극하는 알고리즘 참고해서 만들었습니다. #include #include using namespace std; class node{ private: int value; public: node(int val){ value=val; } int getValue(){ return value; } void setValue(int val){ value = val; } node* left; node* right; ~node(){ delete this; } }; node* CreateNode(int value); // 노드생성함수 void InsertNode(node* tree,node*..

이진탐색트리 자동 생성 소스

/* * http://sosal.tistory.com/ * made by so_Sal */ 루트 노드를 50으로 넣은 후, rand()%100 으로 노드를 계속해서 생성해나갑니다. 생성된 노드보다 큰값이면 우, 작으면 좌측 노드로 향하며 우측, 또는 좌측노드가 NULL이라면 새로 생성된 노드는 자식노드가 되며, NULL이 아닐 경우에는, 다시 크기 비교를 반복합니다. #include #include using namespace std; class node{ private: int value; public: node(int val){ value=val; } int getValue(){ return value; } node* left; node* right; ~node(){ delete this; } }; ..

탐색 : 이진탐색

/* * http://sosal.tistory.com/ * made by so_Sal */ 이진탐색은 정렬이 되어있는 데이터 배열에 사용할 수 있습니다. 찾기를 원하는 value를 받고, 배열의 정 가운데 값과 비교하여 크면, 가운데와 맨 끝의 중간을 비교, 작으면 가운데와 처음을 비교합니다. 이렇게 반씩 줄여나가면서 데이터를 찾는 과정이 binary search 입니다. 그럼 간단한 함수 예제를 볼까요? #include #include #include using namespace std; int BinarySearch( int *arr, int size , int object){ //arr은 정렬된 데이터의 array, object는 찾고자 하는 수의 값을 뜻합니다. int left = 0; int r..

반응형