본문 바로가기

컴퓨터/C, C++14

[C++] STL vector erase사용법 정리 erase사용 간단 정리 erase를 사용하던 중 가끔씩 반환값이 무엇인지 헷갈려 찾아 볼 때가 있었다. 그럴 때를 위해, 혹은 기억하기 위해 간단히 사용법을 남긴다. 반환값 = 다음 itrator erase함수로 특정 값을 삭제하면 반환값으로 다음 번지를 가르키는 itrator를 가진다. 또한 삭제된 값뒤의 값들이 앞으로 밀리게 된다. 즉, 현재 itrator는 아무것도 가르키지 않으므로, 새로 할당해 줄 필요가 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include #include using namespace std; int main(){ vector v1 = {1, 2, 3, 4, 5}; for(auto it = v1.begin(); it != v1.end.. 2022. 12. 3.
[C, C++]배열 크기 늘리기, 배열 크기 두 배로 바꾸기 배열 크기 늘리기 C와 C++에서 동적으로 할당한 배열의 크기를 늘리는 예제를 정리합니다. 1. C코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include #include #include #define MAX 5 void doubleArr(int** arrAdress) { int* temp = (int*)malloc(sizeof(int) * MAX * 2); memcpy(temp, *arrAdress, MAX); free(*arrAdress); *arrAdress= temp; temp = NULL; } int main(void) { int* arr1 = (int*)malloc(sizeof(int) * MAX); printf("before %d\n\n", .. 2022. 6. 16.
[C++] C++에서 클래스 생성자 재사용(상속, 부모 생성자, 자식 생성자) C++ 생성자 재사용 C++에서 생성자를 재사용 하는 방법을 정리합니다. C++에서 생성자는 멤버 변수를 초기화시켜주는 역할을 합니다. 만약 생성자를 작성하는 경우에는 기본 생성자가 호출되지 않기 때문에 기본 생성자를 호출해야만 합니다. 그런데 만약, 부모 클래스에서 생성한 멤버 변수를, 그리고 그 생성자를 자식 클래스에서 그대로 사용하려면 어떻게 해야 할까요? 이 의문은 상속을 공부하다보면 당연히 들 수밖에 없습니다. 왜냐하면 부모를 상속받은 자식 요소는 (접근 가능한지 아닌지 차이일 뿐)부모 요소를 그대로 물려받아 사용할 수 있기 떄문입니다. 즉, 부모 Person 클래스의 생성자를 자식 클래스 Student클래스에서 그대로 사용할 수 있을까요? 결론부터 말하자면 가능합니다. 간단히 정리하겠습니다. .. 2022. 6. 6.
[C]c언어 배열과 문자열, 배열에 문자열 대입하기 배열에 문자열 대입 C언어에서 문자열은 문자형의 배열로서 나타낸다. 이를테면 char s[] = "문자열"; 이런 형태이다. 물론 이렇게 배열을 초기화 할 때, 문자열을 할당한다면 코드가 문제없이 동작한다. 하지만 선언 이후 배열에 문자열을 할당하려 하면 오류가 발생한다. 이를 해결하는 방법을 간단히 기록한다. strcpy 이용 그 방법은 바로 string.h 헤더파일에 있는 strcpy 함수를 이용하는 것이다. 이 함수는 간단히 문자열을 복사해 주는 함수라고 생각하면 된다. 위 코드를 보다시피 strcpy(s2, "문자열2");라고 하면, s2에 문자열2를 복사해서 넣는다고 볼 수 있겠다. 결과는 정상적으로 출력된다. 2022. 5. 7.