본문 바로가기

All250

Chapter 11. 추상 데이터 타입 정리 - 모든 생성자는 객체의 올바른 초기화를 보장해야 한다. - 반복자가 구현된 컨테이너 또는 클래스에서 요소의 개수를 구하기 위해 size 변수를 따로 선언하지 않아도 된다. => end와 begin의 차(subtraction)를 통해 구할 수 있고 그 타입은 std::ptrdiff_t 이다. - explicit 키워드는 단일 인수를 가진 생성자의 정의에서 사용 가능하며 자동 형변환을 통한 생성자 호출을 막고 명시적으로만 호출하도록 한다. - 책에선 형식 정의할 때 typedef를 사용하지만 되도록 using 키워드를 사용하자 - 멤버 함수가 아닌 연산자 오버로딩을 할 경우 첫 번째 인수가 왼쪽 피연산자에 바인딩되고 두 번째 인수가 오른쪽 피연산자에 바인딩된다. - 멤버 함수로 연산자를 오버로딩할 경우 연.. 2019. 12. 9.
유용한 커맨드 명령어 (윈도우) - 디렉토리 열기 start [directoty name] - 현재 디렉토리 열기 start . 계속 추가 예정 2019. 12. 6.
mov와 lea 명령어 / call by value, call by reference, call by address 쉽게 이해하기 MOV EAX, EBP LEA EDX, EBP mov (move) 명령어는 좌변에 우변(상수 가능)의 값을 복사합니다. lea (load effective address) 명령어는 좌변(레지스터)에 우변의 주소값을 저장합니다. 사용 예시) mov eax, ecx 라는 명령은 ecx 레지스터에 저장된 값을 eax 레지스터에 복사한다는 의미입니다. mov eax, [adr] 라는 명령은 adr 주소가 가리키는 값을 eax 레지스터에 저장한다는 의미입니다. mov eax, dword ptr [num] 라는 명령은 num의 주소가 가리키는 4바이트(dword) 값이 eax에 저장된다는 의미입니다. mov dword ptr [num], 12345 지역변수 num에 12345라는 상수 값을 복사(저장)합니다. mo.. 2019. 12. 5.
[C++] 포인터와 레퍼런스(참조)의 차이를 이해해보자 C++에는 포인터(Pointer)와 레퍼런스(Reference)라는 개념이 있다. 포인터는 C 에도 있었던 개념이며 레퍼런스는 C++ 에서 등장한 개념이다. 언뜻 보면 용도가 비슷한데 정확히 어떤 차이점이 있는지, 내부적으로 어떻게 동작하는지, 왜 레퍼런스가 나오게 됐는지에 대해서 정리해보자. 포인터에 대해 헷갈려 하시는 분들을 위해 간단하게 용어 정리를 해보자면.. 포인터는 변수의 주소를 저장하는 특별한 타입의 변수이다. 주소값 자체를 포인터라고 생각해도 좋다. 주소만을 저장할 수 있는 변수를 포인터 변수라고 하고 일반적인 변수 선언과는 다르게 자료형에 * 표시를 붙여 선언한다. int* p; 는 int형 변수의 주소를 저장하는 포인터 (변수) p를 선언한 것이다. 포인터, 포인터 변수 다 같은 말이다.. 2019. 12. 5.
Linear Regression Regression (Regression toward the mean) 이란? 통계학에서 사용되는 용어로 관찰된 연속형 변수들에 대해 두 변수에 대한 추정 모델을 구한 뒤 분석하는 기법을 말합니다. 데이터 관련 분야에선 작거나 큰 데이터가 나와도 해당 데이터들은 전체의 평균으로 회귀, 되돌아가려는 속성을 말합니다. Linear Regression (선형회귀)란? 통계학에서 사용되는 용어로 종속 변수 y와 한개 이상의 독립 변수 x와의 선형 관계를 모델링하는 기법을 말합니다. 선형회귀는 가설함수(직선의 방정식)을 통해 해당 식을 구하며 알려지지 않은 변수를 데이터를 통해 추정합니다. 선형회귀는 머신러닝 분야에서 중요한 기법입니다. 선형회귀를 통해 데이터를 가장 잘 represent하는 최적의 직선의 방정식.. 2019. 11. 30.
What is Machine learning? Machine learning 이란? : 스스로 변화하는 프로그램 머신 러닝은 인공지능의 부분 집합이며 소프트웨어 및 프로그램이다. 머신 러닝은 동적으로 동작하며 특정한 변화를 위해 인간의 개입을 필요로 하지 않는다. 어떠한 작업에 대해 꾸준한 경험 및 학습을 통해 작업에 대한 성능을 향상시키는 것이 머신 러닝이다. 반대로 입력을 기반으로 프로그래머가 의도한대로 흘러가는 일반적인 프로그램을 Explicit program 이라 한다. 머신 러닝은 주어진 자료나 현상을 통해서 학습을 하는데 학습 방법에 따라 Supervised / Unsupervised learning 으로 나뉜다. Supervised learning은 특징(label)이 정해져있는 데이터(Training set)를 가지고 학습을 한다. X.. 2019. 11. 29.