Programming II52 [Effective C++] Chapter8 new와 delete를 내 맘대로 - C++의 메모리 관리 루틴이 어떻게 동작하는지를 알아두면 좋다. operator new 및 operator delete이다. 여기에 new 처리자(new-handler)가 추가로 있는데 메모리 요구를 operator new가 맞추어 주지 못했을 때 호출되는 함수이다.- 힙은 수정이 가능한 전역 자원으로 분류된다.- operator new 및 operator delete는 객체 한 개를 할당할 때만 적용되는 함수이다.- operator new[] 및 operator delete[]는 배열을 담을 메모리의 경우에 사용한다.항목 49: new 처리자의 동작 원리를 제대로 이해하자 / 348(10)- 사용자가 보낸 메모리 할당 요청을 operator new 함수가 맞추어 주지 못할 경우에(즉, 할당할 메모리.. 2025. 3. 26. [Effective C++] Chapter7 템플릿과 일반화 프로그래밍 - 일반화 프로그래밍이란? 조작할 객체의 타입과 상관없이 코드를 작성하도록 하는 개념 - for_each, find, merge 등의 STL 알고리즘이 일반화 프로그래밍의 본보기가 된다. - C++ 템플릿 메커니즘은 그 자체가 튜링 완정성을 갖고 있다. 즉 C++ 템플릿을 사용하면 계{산 가능한 어떤 값도 계산할 수 있다. - 튜링 완정성이란? 튜링 동등 혹은 계산적으로 범용적이란 다른 말로도 불린다. - 템플릿 메타프로그래밍이란? 컴파일 내부에서 실행되고 컴파일 과정이 끝날 때 실행을 멈추는 또 하나의 프로그램을 만드는 것이다.항목 41: 템플릿 프로그래밍의 천릿길도 암시적 인터페이스와 컴파일 타임 다형성부터 296 (4)- 객체 지향 프로그래밍의 세계를 회전시키는 축은 명시적 인터.. 2025. 3. 26. [Effective C++] Chapter6 상속, 그리고 객체 지향 설계 - 상속은 단일 상속과 다중 상속이 가능하고, 상속 관계 하나하나가 public, protected, private의 성질을 가질 수 있습니다. 그뿐 아니라 여기에 가상 상속과 비가상 상속이 얹힐 수도 있다.- 멤버 함수? 가상 함수? 비가상 함수? 순수 가상 함수? 그리고 C++가 지원하는 다른 기능들과 이들의 상호관계.- 기본 매개변수는 가상 함수와 어떻게 맞물려 돌아갈까?- 상속은 C++의 이름 탐색 규칙에 어떤 영향을 줄까요?- 설계 시의 선택사항은 어떤 식으로 바뀔까요?- 어떤 클래스의 동작 원리를 외부에서 수정할 수 있어야 한다고 결정했을 때, 과연 가상 함수가 최선의 방법일까요? - public 상속은 반드시 is-a 관계를 뜻해야 하며, 이 외의 의미를 붙이려고 하면 난처해진다.- 가상 함.. 2025. 3. 26. [Effective C++] Chapter5 구현 항목 26: 변수 정의는 늦출 수 있는 데까지 늦추는 근성을 발휘하자.- 생성자 혹은 소멸자를 끌고 다니는 타입으로 변수를 정의하면 반드시 물게 되는 비용이 두개 있다. 하나는 프로그램 제어 흐름이 변수의 정의에 닿을 때 생성자가 호출되는 비용이고 또 하나는 그 변수가 유효범위를 벗어날 때 소멸자가 호출되는 비용이다.- 따라서 변수의 정의는 변수의 정의가 꼭 필요해지기 전까지로 미루는 편이 낫다.- 상당수의 경우에 어떤 객체를 가지고 하는 가장 처음 일은 값을 주는 것이다. 이때 대개 대입 연산을 쓴다. - 객체를 기본 생성하고 나서 값을 대입하는 방법이 원하는 값으로 직접 초기화하는 방법보다 효율지 좋지 않다. - 따라서 변수를 정의함과 동시에 초기화하는 것이 좋다. 이때 복사 생성자가 쓰.. 2025. 3. 26. [코딩 테스트를 위한 자료 구조와 알고리즘 with C++] 3장 해시 테이블과 블룸 필터 참고 자료 : 코딩 테스트를 위한 자료 구조와 알고리즘 with C++ - 존캐리, 파야스라잔, 셰리안도시 저# 3장 해시 테이블과 블룸 필터3.1 들어가며더보기- 룩업(lookup, 조회)은 특정 원소가 컨테이너에 있는지 확인하거나 또는 컨테이너에서 특정 키에 해당하는 값을 찾는 작업을 의미한다.3.2 해시 테이블더보기- 선형 검색은 O(N)의 시간이 필요로 한다. - 더 나은 방법은 BST와 같은 속성을 갖도록 높이 균형 트리에 데이터를 저장하는 것이다. 이는 시간 복잡도가 O(log N)이 되기 때문에 선형 검색보다 훨씬 바르다. - 이보다 더 효율적인 방법에는 해시 테이블이라는 방법이 있다.3.2.1 해싱- 해시 테이블의 핵심은 해싱이다. - 해싱은 각각의 데이터를 가급적 고유한 숫자.. 2025. 3. 26. [시스템] 16장. 컴퓨터 구조에 대한 네 번째 이야기 01. 메모리 계층(Memory Hierachy)+ 메모리의 범위와 종류- 메모리라고 하면 메인 메모리에 해당하는 램을 생각한다. 그러나 램이 사용되는 메인 메모리 이외에도 메모리라고 불릴 수 있는 요소들이 너무나도 많다.- 컴퓨터를 구성하는 요소 중에서 임시적이든, 영구적이든 저장 기능을 조금이라도 가지고 있으면 무조건 메모리의 범위에 포함된다. [메인 메모리]- 메인 메모리인 D램 계열의 메모리인 램이다.- 메인 메모리가 반드시 램이어야 할 이유는 없다. 그러나 거의 모든 컴퓨터가 메인 메모리로 램을 사용한다.[레지스터]- CPU안에 내장되어 있어서 연산을 위한 저장소를 제공한다.[캐쉬]- 캐쉬는 D램보다 빠른 S램으로 구성된다. - 캐쉬는 CPU와 램 사이에서 중간 저장소 역할을 하는 메모리이다.-.. 2025. 3. 24. 이전 1 2 3 4 5 6 7 8 9 다음