이론7 STL 컨테이너 컨테이너란 C++에서 컨테이너는 객체들의 컬렉션을 저장하고 구성하는 데 사용되는 클래스 템플릿이나 미리 정의된 클래스입니다. 컨테이너에 저장된 객체는 동일한 유형이거나 다른 유형일 수 있습니다. 컨테이너 종류 STL기준 크게 3가지의 컨테이너로 분류됩니다. 시퀀스 컨테이너 종류 : vector, list, deque, forward_list설명 : 순차 컨테이너는 C++에서 선형 시퀀스를 나타내는 컨테이너 유형입니다. 요소는 특정 순서로 저장되며 컨테이너 내에서 위치 또는 인덱스를 사용하여 액세스할 수 있습니다. 각 종류별 특징 vector는 요소가 추가 또는 제거됨에 따라 크기가 커지거나 줄어들 수 있는 동적 배열입니다. 요소는 인덱스를 사용하여 상수 시간에 액세스할 수 있습니다. deque는 vect.. 이론 2023. 4. 21. 메모리 단편화 메모리 단편화 메모리 단편화란 C++및 기타 프로그래밍 언어에서 발생할 수 있는 문제입니다. 프로그램에서 사용하는 메모리가 작은 블록으로 분할되어 새로운 개체나 데이터 구조에 할당할 대규모 연속 메모리 영역을 찾기 어려울때 발생하는 문제입니다. (쉽게 말해 new와 delete를 많이 발생하면 생기는 문제) 이 문제로 인해 사용 가능한 총 메모리가 충분하더라도 프로그램이 새 개체 또는 데이터 구조에 충분한 메모리를 할당할 수 없는 상황이 발생할 수 있습니다. 이는 사용 가능한 메모리가 작은 조각으로 조각나고 요청을 충족할 만큼 충분히 큰 단일 메모리 블록이 없기 때문입니다. 메모리 단편화 해결방법 메모리 풀링 메모리 단편화에 대한 한 가지 해결방법은 메모리 풀링이라는 메모리 관리 기술을 사용하는 것입니다.. 이론 2023. 4. 18. 얕은 복사와 깊은 복사의 차이 얕은 복사와 깊은 복사의 차이 얕은 복사 얕은 복사는 단순히 개체의 멤버 변수 값을 새 개체에 복사합니다. 그러나 멤버 변수가 포인터인 경우 새 개체는 원래 개체와 동일한 메모리 주소를 공유하게 됩니다. 즉, 원래 객체의 멤버 변수 값이 변경되면 새 객체의 멤버 변수 값도 변경이 됩니다. 깊은 복사 깊은 복사는 자체 멤버 변수 복사본을 사용하여 새 개체를 만듭니다. 멤버 변수가 포인터인 경우 새 객체는 별도의 메모리 주소를 갖게됩니다. 즉, 원래 개체에 대한 변경 사항은 새 개체에 영향을 주지 않습니다. 예시 #include class ShallowCopy { public: ShallowCopy(int* arr) { data = arr; } void printData() { std::cout 이론 2023. 4. 18. 오버로딩과 오버라이딩의 차이 오버로딩 C++에서 오버로딩은 이름은 같지만 매개변수가 다른 여러 함수를 정의하는 기능입니다. 다른 동작을 가진 함수에서 같은 이름을 지정할 수 있으므로 보다 유연하고 확장 가능한 코드가 가능합니다. 컴파일러는 컴파일 타임에 전달된 인수를 기반으로 호출할 오버로드된 함수의 버전을 결정합니다. 적절한 함수를 선택하는 프로세스를 "함수 오버로딩 해결"이라고 하며 컴파일 단계에서 컴파일러에 의해 수행됩니다. C++에서 오버로드된 함수의 매개변수는 매개변수의 수, 매개변수 유형 또는 둘 다에서 달라야 합니다. 오버로드된 함수의 반환 유형은 같거나 다를 수 있지만 호출할 함수를 결정할 때 고려하지 않습니다. 함수 오버로딩의 예 #include using namespace std; int sum(int x, int.. 이론 2023. 4. 18. 램버트 조명 공식 램버트 조명 공식 환경광 (Ambient Light) + 확산 반사광 (Diffuse Light) = 빛의 세기 * 물체의 색 + 빛의 세기 * 물체의 색 * (N ● L) 여기서 N은 노멀 벡터이고 L은 광원 벡터값이 들어가게 됨 물체의 색(물체의 반사 계수) 이론 2022. 8. 9. 렌더링 파이프라인 구조 렌더링 파이프라인 구조 Input Assembler (입력 조립기) ▼ Vertex Shader (정점 셰이더) ▼ Hull Shader (덮개 셰이더) ▼ Tessellator (테셀레이터) ▼ Domain Shader (영역 셰이더) ▼ Geomatry Shader (기하 셰이더) ▼ Rasterizer (레스터화기) ▼ Pixel Shader (픽셀 셰이더) ▼ Output Merger (출력 병합기) Input Assembler(입력 조립기) 정점(Vertex)정보와 기본도형 위상구조의 정보를 얻어와 해당 정보들로 조립하는 역할을 수행한다 Vertex Shader(정점 셰이더) 사용자의 정의로 구현하여 GPU에 넘겨주고 모든 정점들에 대해 한 번씩 실행이 된다. (변환, 조명, 변위 매핑) Hul.. 이론 2022. 8. 9. 0x00 시간 복잡도 순서 O(1) < O(lgN) < O(N) < O 이론 2022. 8. 2. 이전 1 다음