반응형 전체 글100 [c++] thread 요즘은 고성능 프로그램을 만들 때 멀티코어를 얼마나 잘 활용하느냐를 중요하게 여깁니다. C++ 11부터는 thread 라이브러리를 지원하여 플랫폼과 독립적으로 thread를 구현할 수 있습니다. thread 특징 thread는 프로세스의 실행 단위에 해당한다 한 프로세스 내에서 동작되는 thread는 메모리를 공유할 수 있다 thread는 독립적인 자원을 수행하므로 각자의 스택과 레지스터 값을 가진다 thread마다 스택을 독립적으로 할당하는 이유 독립적인 실행 흐름을 제공하기 위해 최소 조건으로 스택을 독립적으로 할당해야 합니다. 왜냐하면 스택은 함수 호출 시 전달되는 인자, 되돌아갈 주소, 함수 내 변수등을 저장하기 위한 메모리 공간으로 사용되기 때문입니다. thread의 장점 thread는 프로세스.. 2021. 8. 4. [c++] lvalue reference and rvalue reference lvalues references and rvalues references in C++ with Examples - GeeksforGeeks l-value and r-value l=value는 객체를 가리키는 메모리 위치를 나타내고, r-value는 메모리 위치에 할당된 값을 나타냅니다. 여기서 참조 (reference)는 이미 존재하는 변수에 다른 이름을 할당하는 것외에 다른 기능은 없습니다. int a = 10; int& lref = a; // 좌측 값 참조 int&& rref = 10; // 우측 값 참조 아래 코드는 좌측 값 참조와 참조된 변수의 주소를 비교하는 코드입니다. 마치 포인터처럼 같은 메모리 주소를 갖는 것을 알 수 있습니다. #include using namespace std; // .. 2021. 8. 4. 유니티에서 소켓 통신하고 이벤트 등록하기 (C# 예제 코드) 이 페이지는 구글링해서 이것 저것 합친 것을 정리한 것이다 내용이 일부 틀릴 수 있으므로 자세한 내용은 추가적으로 구글링하거나 전문 서적을 통해 찾아봐야 한다 특히 유니티는 거의 모르는 상태에서 작성한 것이라 분명 틀린 부분이 있을 것 같다 I. 단순한 소켓 프로그래밍 유니티 엔진을 단독으로 사용할 때에는 Photon과 같은 네트워크 패키지를 이용할 수 있다 그러나 게임을 조작하기 위해 다른 플랫폼 (C++ 또는 Python 프로그램)과 연동해야 하는 경우, 유니티 패키지를 그대로 사용할 수 없으므로 직접 소켓 프로그래밍을 작성해야 한다 이번에는 소켓 프로그래밍 (= 네트워크 프로그래밍)을 통해 유니티 게임을 조작하는 방법에 대해 알아본다 여기에 사용한 소스코드는 일부 설명을 위해 발췌한 것이고, 실제 .. 2021. 7. 30. 퀵 소트 (Quicksort) - c/c++ 20세기에 발견된 가장 중요한 알고리즘 중 하나 Mergesort와 함께 가장 많이 사용되는 정렬 알고리즘 재귀호출을 사용하며, Mergesort와 달리 파티션이라는 작업을 통해 어느정도 정렬한 뒤 재귀호출 수행 기본 아이디어 배열을 섞는다 파티션을 나눈다 : j를 기준으로 왼쪽에는 a[j]보다 작은 원소, 오른쪽에는 작지 않은 원소가 오도록 이동시킨다 : 여기서 j는 피벗 (pivot)에 해당한다 왼쪽 파티션과 오른쪽 파티션을 정렬한다 소스코드 /* C implementation QuickSort */ #include void swap(int* a, int* b) { int t = *a; *a = *b; *b = t; } int partition (int arr[], int low, int high) .. 2021. 5. 5. [Modern CMake] target_link_library, link_library (임시) modern CMake는 빌드 의존성 문제 및 빌드 속도 개선을 위해 CMake 3.0.0 버전부터 도입되었습니다. modern CMake에서는 기존의 link_library 대신 target_link_library를 사용할 것을 권장하고 있습니다. classic CMake의 문제는 무엇이었는지, 그리고 modern CMake에는 무엇이 변경되었는지 차례로 설명하겠습니다. 1. classic CMake 문제점 먼저 classic CMake의 문제점에 대해 알아보겠습니다. CMake 2.7.x 버전에는 link_libraries, include_directories 명령어를 이용하여 빌드 옵션을 지정하였습니다. ADD_COMPILE_OPTIONS ( ... ) INCLUDE_DIRECTORIES ( ..... 2021. 4. 15. 기초 기호 표 (Elementary Symbol Table) 기초 기호 표 (Elementary Symbol Table) I. 기호 표 (Symbol Table) 기호 표 (Symbol table)는 추상적 개념에 연산을 추가하기 위해 고안된 자료구조로, 컴파일러 또는 인터프리터와 같은 언어 변환기에서 사용하고 있습니다. 이번 강의에서는 기호 표 자료구조를 위한 메서드와, 구현 방법에 대해 알아보겠습니다. I-1. Basic symbol table API 기호 표의 기본 메서드는 다음과 같습니다. key와 value 저장하기 - void put (key, value) 주어진 key로 value 검색하기 - value get (key) 주어진 key로 value 삭제하기 - void delete (key) 모든 key 내용 불러오기 - Iterable keys() .. 2021. 3. 26. 이전 1 ··· 9 10 11 12 13 14 15 ··· 17 다음 반응형