Language 썸네일형 리스트형 [C++] Dynamic array (std::vector) - 컴도리돌이 STL에는 동적 배열용 std::vector가 있다. std::vector를 사용하면 배열을 사용한 것처럼 크기와 랜덤 액세스에 관계없이 요소를 삽입하거나 삭제할 수 있다. 이러한 std::vector와 같은 동적 배열을 생성하려면 메모리를 할당하고 요소 추가로 인해 메모리 크기가 충분하지 않을 경우 재할당해야 한다. *len , push_back 및 pop_back 구현* #include using namespace std; template struct dynamic_array { T* pointer = nullptr; size_t cap = 0; public: dynamic_array(size_t cap) : cap(cap) { this->pointer = new T[cap]; } int array_.. 더보기 [C++] Reference(&) - 컴도리돌이 Reference(&) Reference는 Pointers와 매우 유사하게 사용된다. 포인터보다는 강력하지는 않지만 사용하는 데는 안전하다. Passing by Reference to Constant -> function call 후에도 instance가 변경되지 않고 남기기 위해 사용 -> argument의 copying을 피하기 위해 사용 -> 유효한 instance의 reference가 보장하기 위해 사용 Defferences between Pointer & Reference 1. 포인터는 초기화를 하지 않아도(uninitialized) 사용할 수 있지만, reference는 초기화를 시켜주지 않으면 error가 나기 때문에 반드시 초기화를 시켜줘야 한다(initialized). int* pa; /.. 더보기 [C++] Namespace - 컴도리돌이 Namespace 변수 또는 함수의 이름이 같을 때 생기는 충돌을 예방하기 위한 방법이다. (큰 프로젝트에서) namespace ns { code } #include namespace first_space{ void func() { std::cout 더보기 [C++] 동적할당(Dynamic memory allocation) - 컴도리돌이 C 언어 동적 할당 -> malloc(), free() functions -> #include #include int* pnum = (int*)malloc(sizeof(int)); //pnum 포인터를 정수형 크기로 메모리 할당 free(pnum); // 사용한 pnum를 삭제 C++ 언어 동적 할당 ->new, delete operators new : 타입 또는 클래스에 대한 변수 또는 instance를 생성한다. delete : new에 생성된 변수 또는 instance를 삭제한다. new [] : 타입 또는 클래스에 대한 변수 또는 instance의 배열을 생성한다. delete [] : new []로 생성된 배열을 삭제한다. //One instance Allocate and Deallocate i.. 더보기 [C++] introduction to C++ - 컴도리돌이 C++ Structure of Program #include using namespace std; // std namespace 사용 int main() { cout 더보기 [C++] Pointer and Const -컴도리돌이 Declaring a Pointer as Const -1 int num = 20; const int* ptr = # 포인터 ptr은 num의 주소 값을 가리킨다. 그 앞에 const를 붙이면 포인터를 통해서 변수의 값을 수정할 수 없다. *ptr = 30; // compile error! 하지만 num 변수 자체의 값을 수정할 때는 에러가 나지 않는다. num = 30; // OK Declaring a Pointer as Const -2 int num1 = 20; int num2 = 30; int* const ptr = &num1; 요번에는 포인터 앞에 ptr을 const를 붙였다. -> ptr의 값은 수정할 수 없다. -> 다른 변수를 가리키도록 ptr 값을 수정할 수 없다. ptr = &num.. 더보기 [C++] 구조체 정의 - 컴도리돌이 Structure variable struct book{ char title[50]; char autor[50]; char subject[100]; int book_id; }; struct book book1; book은 구조체의 type 이름이며, book1은 book 구조체 타입을 가지는 변수이다. book1.book_id = 0; book의 구조체 타입을 가진 book1의 member에 접근하고 싶을 때 member access operation "."을 붙여서 member name을 선택한다. typedef typedef unsigned int MyType; typedef을 사용함으로써 새로운 이름을 가진 타입을 줄 수 있다. typedef and struct struct point { int x.. 더보기 [C++] C 포인터 (call-by-value, call-by-reference) - 컴도리돌이 - int variables in memory int num1 = 5; int num2 = 129; &num1 == ? &num2 == ? 정수형 (int)는 4byte를 크기를 갖는다. num1의 주소가 10246이라 가정하면 10249 까지는 num1의 변수가 메모리에 저장된다. '&' 주는 주소 연산자이며 해당 변수의 주소 값을 반환한다. 그렇기 때문에 &num1의 값은 10246이고 &num2의 값은 10272이다. -double, float variables in memory double a = 3.14; float b = 1.1; &a == ? &b == ? double 형과 float 형은 각각 8byte, 4byte의 크기를 갖는다. 아래 그림의 예를 가지고 a와 b의 주소 값을 구해보면 .. 더보기 이전 1 ··· 20 21 22 23 24 25 26 27 다음