목록C++ (40)
안선생의 개발 블로그
1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include using namespace std; int main() { char x[] = "banana"; int i, j; int count = 0; int sum = 0; for (i = 0; x[i] != NULL; i++) { count = 1; for (j = i + 1; x[j] != NULL; j++) if (x[i] == x[j] && x[i] != -1) { count++; x[j] = -1; // 두번 못새게 값을 -1로 만들어줌 } if (count > 1) { cout
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include using namespace std; int main() { char x[] = "JSON"; char x1[] = "JS"; char t; int i = 0; for (i=0;x[i] != NULL; i++) { if (x[i] != x1[i]) break; } if (x[i] == x1[i]) cout
첫번째 방법 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include using namespace std; int main() { char x[] = "JSON"; char x1[10]; int i = 0; for (i = 0;x[i] != NULL; i++) { } i -= 1; // i를 뺴줘야 N까지 됨 int j = 0; for (j = 0; i >= 0; i--, j++) { x1[j] = x[i]; } x1[j] = NULL; // 문자열 마지막에는 문자열에 마지막이라는 널이 있어야함 cout
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include using namespace std; int main() { char x[] = "Jhon"; for (int i = 0; x[i] != NULL; i++) { if (x[i] >= 'a' && x[i] = 'A' && x[i]
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wEQ79/btrNvPZgVfp/JKUo1GnrIkwqmqIJmuWNQk/img.png)
2차원배열 동적할당 하는법 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 int** b; // 이중포인터 선언 b = new int*[3]; // 포인터 접근 int c = 0; //2차원 배열 선언 for (int i = 0; i
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/7zOqg/btrMKsBUvLL/W1WtPb2Bi4x9I7VFiky0Sk/img.png)
다형성 , 가상함수(virtual) 부모 포인터 타입으로, 부모 클래스로부터 파생되는 자식클래스 객체들의 주소를 가리킬 수 있다. 모든 객체를 부모 클래스 타입으로 인식하게 되기 때문에, 실제 객체가 무엇인지 알 수 없다. 자식의 함수가 호출 될줄알았지만 부모 함수가 호출됨 해결방안 virtual 키워드를 통해서, 각 클래스는 자신만의 고유한 가상함수 테이블을 가지게 된다. 가상함수를 붙여줌으로써 각 클래스의 객체들은 가상함수 테이블 포인터에서 해당 클래스에 맞는 테이블을 가리키게 된다. 그 테이블에는 해당 클래스의 가상함수들이 등록 다시 실행하면 자식 함수가 실행됨 다운 캐스팅 부모 클래스에서 선언되지 않은, 오직 자식쪽에서만 추가된 함수를 호출 하고 싶을 떄 자식 포인터타입으로 일시적으로 캐스팅 해서..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c2cqUO/btrMIO0hD6C/edl5tpExLu8GLxrlOabRgk/img.png)
오버 라이딩 부모 클래스의 멤버함수를 자식쪽에서 재정의 함으로써, 자식 클래스에 구현된 기능이 호출되도록 한다. 부모의 output함수가 있고, 자식 클래스에도 같은 output()함수가 있다. 이렇게 되면 뭐가 출력이 될까? cp.output(); // 부모의 함수가 출력 ch.output(); // 상속받은 부모클래스의 함수를 재정의(오버라이딩)되서 자식 함수가 호출됨 ch.CParent::output(); // 부모의 함수가 출력됨 근데 굳이 오버라이딩 했는데 부모로 접근할 필요가 없다. 오버로딩은 매개변수가 다른 함수를 여러개 선언할 수 있는 것이고 오버라이딩은 부모 클래스의 멤버함수를 자식쪽에서 재정의 함으로써, 자식 클래스에 구현된 기능이 호출되도록 한다. 출처 : https://www.you..
상속 부모클래스의 기능을 자식 클래스가 쓸 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 #include using namespace std; class CParent //부모 클래스 { protected: //자식은 접근 가능 int m_i; public: CParent() // 기본생성자 :m_i(0) {} CParent(int a) ..
map 사용법 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 #include #include //백터 사용하기 위한 참조 #include //리스트 사용하기 위해서 선언 #include"CArr.h" #include "test.h" #include "CList.h" #include #include #include #include #include #include "CBST.h" using namespace s..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bUSXd1/btrMoyJmYmd/4KRPgQdtXSepSXeTMhWHVk/img.png)
Tree는 자료구조의 한 종류이며 계층관계를 표현할 때 많이 사용된다. 계층관계를 사용할 떄 용이함 Tree는 순회가 불가능 하다. ex) 회사 조직도 ,폴더 구조 등 노드 : 1,2,3등등 객체가 노드 root : 부모가 없는 노드 트리의 맨위 1번노드 부모 : 자신보다 하위 노드를 가지고 있는 노드 1 2 3 자식 : 부모에 하위 노드 리프(leaf) : 자식 노드를 가지고 있지 않는 노드 4 5 6 7 level : 루트부터 레벨 0 , 그 하위 단계를 레벨1, 점차 늘려감 이진트리 자식에 갯수가 2개 이하인 트리 완전 이진트리 완전한 트리 형태를 가진 이진트리를 말한다. 보통 배열로 나타낸다. 배열의 자식은 2 * 인덱스 +1가 자식이다. 2k+1 예 1번 루트의 자식은 2*0 +1 인덱스 1에 ..