C++ shared_ptr 사용할 때 주의할 점 shared_ptr로 생성한 변수를 다른 함수의 매개변수로 넘길 때 신경 써야 할 부분이 있음 #include "pch.h" #include #include #include #include void Func(std::shared_ptr shared) { //std::cout 컴파일러 최적화 visual studio에서 Debug모드와 Release모드로 구성할 수 있음 예제 코드 #include "pch.h" #include #include #include int i = 0; int k = 0; void Func1() { while (true) { if (i == 1) { //std::cout C++ 스마트 포인터 기본적인 포인터 #include int main() { int *rawPtr = new int(10); std::cout C++ Map, HashMap(unorder_map) 사용할 때 주의할 점 맵이나 해시맵을 사용할 때 그냥 [] 연산자 사용하는 경우가 많은데 이럴 때 주의해야 하는 점이 있음 #include "pch.h" #include #include #include int main() { std::cout C++ 가상 소멸자 (feat. 상속 생성자 소멸자 호출순서) 상속을 할때 소멸자에 virtual을 붙여줘야 함 부모클래스로 선언하고 자식클래스로 동적할당했을 때 소멸 시 자식 소멸자가 호출 안 됨 virtual을 붙이지 않은 경우 #include "pch.h" #include class A { public: A(); ~A(); }; class B : public A { public: B(); ~B(); }; A::A() { std::cout C++ 소켓 에코 채팅 구현하기 소켓 초기화 하는 부분은 ip주소랑 포트 번호 빼고는 거의 고정이라고 보면 되는듯 클라이언트 #include "stdafx.h" #include #include #include #pragma comment(lib, "ws2_32.lib") const int BUFSIZE = 50; int main() { WSADATA wsadata; SOCKET client_socket; SOCKADDR_IN client_address; int port = 5050; if (WSAStartup(MAKEWORD(2, 2), &wsadata) != 0) { std::cout C++ HashMap 구현해보기 (unorder_map) key - > hashfunc -> hash value hash value가 같을때 충돌 회피법 개방주소법 : 다른 주소로 보냄 선형 탐색(Linear Probing) : 해시충돌 시 다음 버켓, 혹은 몇 개를 건너뛰어 데이터를 삽입한다. 제곱 탐색(Quadratic Probing) : 해시충돌 시 제곱만큼 건너뛴 버켓에 데이터를 삽입(1,4,9,16..) 이중 해시(Double Hashing) : 해시충돌 시 다른 해시함수를 한 번 더 적용한 결과를 이용함. 체이닝 : 배열 안에 리스트 std::list[] 최선 : O(1) 최악 : O(n) 외, 내부 단편화 가능성 모두 존재 ◎ 체이닝(Chaining)의 장점 → 연결 리스트만 사용하면 된다. 즉, 복잡한 계산식을 사용할 필요가 개방주소법에 비해 적.. C++ 맵 구현해보기 역시 STL 사용법은 패스 이진트리, 입력시 정렬을 보장함, 검색에 유리함 자식 방문후 돌아과정이 있어 추가 삭제시 리스트 보다 느림 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314.. 이전 1 2 3 4 5 6 다음