자습

자습

vector 자료구조에서도 iterator 사용 가능

#include #include #include #include int main() { std::vector vec[3]; for (int i = 0; i begin(); std::vector::iterator iterEnd = vec->end(); while (iter != iterEnd) { printf("%d\n", *iter); ++iter; } printf("%d\n", (int)vec->size()); return 0; } - 이차원 배열 형태로 사용할 시, 각 열마다 begin()과 end()가 존재

자습

SharedPtr, Reference Counting 구현과 이해

//Class CRef //Ref.h /* [스마트 포인터] * 파이썬 또는 자바의 경우 가비지 컬렉터라는 프로그램이 계속 작동함. - 댕글링 포인터들을 자동으로 청소 but 속도가 느림. * 스마트 포인터 - 공유 포인터 - 원래 기본 기능으로 지원하지만 게임엔진 등에서는 직접 만들어서 쓰는 편이다. * 어떤 주소를 3개의 포인터가 참조하다가 한 포인터에서 delete를 했을 시 나머지 2개 포인터는 댕글링 포인터가 되어 버린다. 매우 위험한 상황. * 그래서 레퍼런스 카운터라는 방법을 사용한다. - 모든 주소는 RC라는 값을 가지고 있고, - delete를 할때 RC값이 0이 아니면 할당을 해제하는 것이 아니라 RC값을 하나 줄인다. - 위의 상황에서 한 포인터에서 delete를 할 경우에 주소가 할..

자습

스택에 생성된 객체는 delete가 되지 않는다

int main() { //포인터는 공유 포인터로 생성해준다. CSharedPtr TestClass1 = new CTestClass; delete &TestClass1; } 너무 당연한건데 실수해서 기록

자습

변수)매번 생성과 동시에 값을 저장 vs 미리 생성해놓고 값 저장

#include "TestClass.h" #include #include int main() { LARGE_INTEGER Second = {}; LARGE_INTEGER Start = {}; LARGE_INTEGER End = {}; int AWin = 0; int BWin = 0; for (int k = 0; k < 100; ++k) { QueryPerformanceFrequency(&Second); QueryPerformanceCounter(&Start); for (int i = 0; i < 10000000; ++i) { int j = i; } QueryPerformanceCounter(&End); double Elapsed1 = (End.QuadPart - Start.QuadPart) / (doub..

자습

부모 클래스의 소멸자에 가상함수를 쓰는 이유

class CParent { public: CParent() { std::cout

자습

실험실: 클래스의 소멸자에서 해당 클래스의 함수 호출이 가능한가?

//TestClass.h #pragma once #include class CTestClass { public: CTestClass() { testnum = new int; } ~CTestClass() { Test(); } private: void Test() { std::cout

자습

220413_자료구조_자동 확장 서클 큐(Circle Queue)

//CircleQueueDynamic.h /* 지난 번에 구현한 서클 큐와 자동 확장 배열 클래스를 응용하여, 용량이 꽉 차면 자동으로 용량을 두 배만큼 늘려 주는 서클 큐를 구현 */ #pragma once #include template class CCircleQueueDynamic { public: CCircleQueueDynamic() { m_Size = 0; m_Capacity = 4; m_Head = 0; m_Tail = 0; m_Array = new T[m_Capacity + 1]; } ~CCircleQueueDynamic() { delete[] m_Array; } private: int m_Size; int m_Capacity; int m_Head; int m_Tail; T* m_Array..

자습

sscanf_s: 문자열 안의 내용을 여러가지 자료형으로 저장하기

* "고블린, 10, 10, 10, 10"이라는 문자열을 문자열 Name, 정수 Str, 정수 Dex, 정수 Int, 정수 Luk 다섯 개의 변수에 나눠서 저장해 보자 * 파일 입출력에 요긴하게 쓸 수 있을 것 같다. #include //sscanf 함수 에러 해제 #pragma warning(disable:4996) #define BUFFER_SIZE 128 int main() { //소스 문자열 생성 char* stringarr = new char[BUFFER_SIZE]; memset(stringarr, 0, BUFFER_SIZE); strcpy_s(stringarr, BUFFER_SIZE, "고블린, 10, 10, 10, 10"); //복사받을 문자열과 변수 생성 char* name = new ch..

hyrule
'자습' 카테고리의 글 목록 (2 Page)