본문 바로가기
728x90

Computer Languages/C | C++13

[Linux Programming] setjmp() / longjmp() setjmp()와 longjmp()는 C언어의 goto문과 유사하지만 다소 차이가 있습니다. goto문 같은 경우는 실행중의 EIP(또는 Program Count)만 변경되지만, setjmp()/longjmp()의 특징은 아래와 같습니다. int setjmp( jmp_buf env ) 함수가 호출되는 순간 스택값들은 env에 저장됩니다. setjmp()호출, longjmp할 곳을 지정합니다. void longjmp( jmp_buf env, int val ) longjmp를 호출하면 setjmp()를 한 곳으로 돌아갑니다. #include #include #include #include void p1(); void intHandler(); jmp_buf env; int main() { signal( SIG.. 2015. 12. 3.
Winpcap Developer 초기 설정 출처 : http://growingdever.tistory.com/164 2015. 7. 16.
[인공지능] A* 알고리즘을 이용한 8-puzzle 만들기 초보자를 위한 A* 알고리즘 (기초개념 설명 및 소스) 참고 - http://egloos.zum.com/cozycoz/v/9748811 8-puzzle에서의 F, G, H값과 열린노드, 닫힌노드 간략한 설명 1) F = G + H, 열린 노드중에서 F값이 최소인 경우를 선택하여 이동한다. 2) G = 현재까지 이동한 횟수 - H = 목표 노드와 현재노드를 비교하여 맞지 않는 노드의 개수 - 열린 노드 : 현재 빈 공간에서 상, 하, 좌, 우 중 갈 수있는 방향을 설정(이때 부모 노드의 위치도 함께저장한다.) - 닫힌 노드 : 이동하기 전의 현재 위치를 저장( 이동한 이후에 월래자리로 돌아가지 않게하기 위함이다.) 8 puzzle 결과 8 puzzle 소스코드 /************************.. 2015. 4. 4.
Heap Sort (isnert & remove) #include #include using namespace std; void out(int *a){printf("%d\n", a[0]);for(int i = 0; i < 10;i++){for(int j = 0; j < 10; j++){if((2*j+1) == i)printf("%d, %d\n", a[i], i);/*왼쪽 출력*/else if((2*j+2) == i)printf("%d, %d\n\n", a[i], i); /*오른쪽 출력*/}}} void insert(int *a, int data){/*1. 마지막(현재) 인덱스에 data를 넣는다.2. 부모와 비교하면서 자식이 크면 자리를 바꾼다.*/int current =10;int parent = 0;int tmp = 0;a[current] = dat.. 2013. 11. 26.
string::getline string의 getline함수는 cin으로 입력받을때 공백도 같이 입력받을수 있다. [예제] // string_getline_sample.cpp // compile with: /EHsc // Illustrates how to use the getline function to read a // line of text from the keyboard. // // Functions: // // getline Returns a string from the input stream. ////////////////////////////////////////////////////////////////////// #pragma warning(disable:4786) #include #include using names.. 2010. 11. 19.
string을 char로 취급하기 #include #include using namespace std; int main() { string name; cin >> name; cout 2010. 10. 21.
[펌]private, proteted, public 의 차이 부모 클래스의 속성 상속 속성 상속 시 속성 private private private private protected private private public private protected private private protected protected protected protected public protected public private private public protected protected public public public 위 표와 같이 private를 어떤 속성으로 상속하든 결과는 private가 되며, protectec는 상속되는 속성에 따라 private 또는 protected가 된다. 그리고 public 또한 상속되는 속성에 따라 private, protected, publ.. 2010. 10. 12.
[펌] new와 delete 메모리를 동적으로 할당하고 해제하기 위해 C에서 malloc과 free가 있었다. C++에서는 new와 delete를 사용한다. - new 연산자를 사용할 경우 명시적 형변환을 할 필요가 없다. int *p=(int *) malloc(sizeof(int)); // 4바이트 할당 int *p=(int *) malloc(sizeof(int)*3); // 12바이트(int형 3개를 갖는 배열) 할당 int *p=new int; // 4바이트 할당 int *p=new int[3]; // 12바이트(int형 3개를 갖는 배열) 할당 - 메모리 할당과 동시에 초기화가 가능하다(단, 배열 형태로 할당받을 경우에는 초기화가 여전히 불가능). int *p=new int(100); // int형 변수 하나를 할당받으면서 .. 2010. 10. 11.
포인터 개념 참조자 사용 1)참조하고자 하는 어떤 객체를 미리 알고있을경우. 2)다른 객체를 바꾸어 참조할 일이 결코 없을경우. 3)포인터를 사용하면 문법상 의미가 어색해지는 연산자를 구현할 경우 위의 경우를 제외하고는 포인터사용. 출처 :: More Effective C++ 2010. 10. 11.
3x3 행렬의 곱 #include using namespace std; #define ROW 3 #define COL 3 int c[ROW][COL]={0,}; int *matrixMultiply()///////행렬 곱셈 함수 { int i,j,k; /////for문 돌리기위한 선언 int a[ROW][COL], b[ROW][COL]; // ********행렬A********** cout 2010. 10. 8.
링크드리스트(노드추가/삭제) #include using namespace std; class node{ private: int value; public: node(int a){ // 생성자 함수를 이용하여 value 초기화 value = a; } int getValue(){ // 값을 얻어오기 위한 함수 return value; } node *next; // 다음 노드를 가리킬 포인터 }; node* first; // 첫번째 노드 node* newNode; int count; // 노드의 숫자를 관리할 conter node* CreateNode(int val){ node *myNode = new node(val); // 새로운 노드 new 를 이용하여 생성 및 value 초기화 myNode->next=NULL; // next 노드 .. 2010. 10. 8.
cast연산자 static_cast :: C언어 스타일 캐스트와 같은 의미, 형변환 ok, 기본적인 캐스트연산자. but 상수성을 떼지 못함 const_cast :: 표현식의 상수성 or 휘발성을 없애는데 사용. 하지만 다른용도로는 통하지 않는다. dynamic_cast :: 상속계층 관계를 가로지름, 하향시킨 클래스 타입으로 안전하게 캐스팅, 파생클래스or형제클래스의 타입으로 변환, 상속계층구조를 오갈때만 사용. reinterpret_cast :: 함수 포인터 타입을 서로 바꾸는 것 ------------------------------------------------------------------------------------- ex) int test; ->static_cast(test); =>int형에서 do.. 2010. 10. 4.
728x90