본문 바로가기

분류 전체보기

C++ 리스트 구현해보기 역시 STL 사용법은 패스 노드 기반 컨테이너, 보통은 이중 연결 리스트를 얘기함, 임의 접근 불가능 추가 삭제에 비용이 적음, 메모리에 연속적으로 구성되지 않아 순회가 상대적으로 느림 이중연결 리스트 구현 코드1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291..
C++ 벡터 구현해보기 STL 벡터 그냥 사용법은 패스.. 특징으로는 동적 배열 내부는 배열로 구성됨 임의 요소 접근이 가능함 Capacity가 가득 찼을 때 배열 길이를 늘여 메모리를 새로 할당 하고 기존 배열에서 요소를 옮겨야 해 느림 new(시스템콜) 커널에 요청 마지막 인덱스가 아닌 요소를 삭제할 때 뒤의 요소를 옮겨야 해 느림, 할당된 메모리에 비해 적게 사용할 가능성이 있음 Capacity : 내부 배열의 길이 Size : 추가된 요소 개수 구현 코드 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798..
C++ 메모리 구조 프로그램의 메모리 구조는 코드, 데이터, 힙, 스탭으로 구성됨 코드 영역 실행할 프로그램의 코드가 저장되는 영역, CPU가 코드영역에서 하나씩 처리함 데이터 영역 프로그램의 전역변수, static변수가 저장되는 영역, 동적으로 할당하는 변수는 힙에 동적할당된 메모리를참조 힙 영역 메모리를 사용자가 직접 관리하는 영역, 사용자에 의해 동적으로 할당되고 해제되는 영역, 런타임 시 크기결정 스택 영역 함수의 지역변수와 매개변수가 저장되는 영역, 함수를 벗어나면 소멸됨 컴파일 시 크기결정
GoogleTest for C++ 사용하기 다운로드 : https://github.com/google/googletest 사실 그냥 깃허브에서 다운받고 하면 되긴하는데.. 요래 만들어 요래 실행하면 잘 되는데.. 이게 중요한게 아니라 내 프로젝트에 적용시키는 법이 잘 안 나와서 정리함 일단 솔루션에 구글테스트 프로젝트 하나를 추가함 그리고 다운 받은 구글테스트를 압축풀어서 적당히 솔루션 폴더에 잘 넣음 그러고 실행을 하면 에러가 엄청 나옴.. 방법이 몇 가지 있는데.. 다른 방법은 밑에서 따로 설명하고 일단 구글테스트 프로젝트들만 따로 빌드를 함 shift+F6 하거나 우클릭으로 선택빌드 그럼 빌드 결과로 요런게 나옴 그리고 자기 프로젝트 경로를 찾아서 프로젝트 세팅을 해줘야함 됨 솔루션을 따로 빌드하는게 귀찮다 싶을 때 방법..그냥 참조에 추가..