728x90
반응형

c++ 10

MongoCxx 라이브러리 Min, Max 해결 방법

링크도 잘 되어 있고, 다른 게 모두 정상인 것 같은데빌드 버튼을 누르는 순간 find.hpp 에서 Min 어쩌구 Max 어쩌구 경고가 뜨는 현상이 있는 사람들이 이 글까지 왔을 것이다. 해당 현상은 Windosw에서 Min Max를 매크로로 생성해두어 충돌하여 발생한 것이라고 하는데이 현상을 해결하는 방법은#define NOMINMAX#include #undef min#undef max#incdlue "MongoCxx~~.hpp"위와 같다Windows.h를 include할 때 minmax를 정의하지 못하게 하고 undef min으로 혹시나 min max가 정의되어 있으면 undef해준 후 mongocxx들을 include 해주면 된다

C++ 2024.05.02

LNK2019 "public: __cdecl 함수명A(void)" (??0CMongoDB@@QEAA@XZ)"public: __cdecl 함수명B(void)" (??0클래스명@@QEAA@XZ) 함수에서 참조되는 확인할 수 없는 외부 기호 해결 방법

만약 온갖 방법을 다 활용해 보아도 안되었거나 동일한 설정을 한 프로젝트 A와 B 중 한 프로젝트만 빌드가 되는 현상이 발생했다면 한번 확인해야 하는 사항이 있다. 중간에 프로젝트에 참여했거나, 기존 프로젝트에서 코드를 가져와 비주얼 스튜디오에 넣어서 라이브러리를 Include한 상태라면 비주얼 스튜디오에 해당 스크립트가 있는지 확인하는 것이다.실제 경로에는 코드가 있지만, 솔류션 탐색기에서 프로젝트를 확장해 보았을 때 해당 코드들이 없다면 수동으로 추가해주어야 한다. 추가하는 방법은 프로젝트나 넣어줄 폴더 우클릭 -> 추가 -> 기존 항목을 누른 후 넣어줘야할 코드들을 모두 넣어주면 된다.하나씩 넣을 필요없이 여러 개 한 번에 가능하다. 진짜 별 생쑈를 다했는데 저거 한 번 하니까 정상 빌드되었다 ㅎ;;;

C++ 2024.05.02

[C++] 컨텍스트 스위치란

컨텍스트 스위치(Context Switch)CPU가 현재 실행 중인 프로세스 또는 스레드에서 다른 프로세스 또는 스레드로 전환하는 과정 이 과정에는 현재 실행 중인 프로세스의 상태(컨텍스트)를 저장하고, 새로운 프로세스의 상태를 불러와서 CPU가 이어서 작업을 수행할 수 있도록 하는 작업이 포함 컨텍스트 스위치는 다음과 같은 상황에서 발생- Time Slice가 끝났을 때: 운영체제가 각 프로세스에 할당한 시간이 끝나면 다음 프로세스로 전환 - I/O 요청이 있을 때: 프로세스가 I/O 작업을 요청하면, 그 작업이 완료될 때까지 CPU는 다른 프로세스로 전환 - 우선순위가 높은 프로세스가 등장했을 때: 더 높은 우선순위를 가진 프로세스가 실행 준비가 되면, 현재 프로세스를 중단하고 우선순위가 높은 프로세..

C++ 2024.03.17

[CPP] 분할 구현

- .h(헤더) 파일에는 함수나 클래스의 선언 - .cpp 파일에는 함수나 클래스의 구현(구현하는 부분에서는 선언한 .h파일을 #include "~~.h"식으로 전처리 해주어야 한다) - 이후 함수를 참조하려면 .h파일 전처리(#include) 하면 해당 함수 사용 가능 test.hclass TestClass{ private: int m_testValue; public: void Output(); void Set(int _value); int Get(); }test.cpp #include #include "test.h" void Test::Output(){ std::cout

C++ 2024.03.15

[C++] Merger Sort 병합 정렬

[병합 정렬의 이점] - 많은 양의 데이터에 대해 효율적 - 효율 O(Log N) - 안정적인 정렬 알고리즘 - 데이터의 초기 순서에 관계없이 항상 일정한 성능 제공 [병합 정렬의 단점] - 메모리를 임시로 저장하기 때문에 메모리 요구량이 크지만, 요즘 사양의 컴퓨터에겐 큰 무리는 없을 수 있다 #include #include // 두 개의 정렬된 서브 배열을 합병하는 함수 void merge(std::vector& arr, int left, int mid, int right) { int n1 = mid - left + 1; int n2 = right - mid; // 임시 배열을 생성하고 데이터를 복사합니다. std::vector L(n1), R(n2); for (int i = 0; i < n1; i+..

C++ 2024.03.15

[C++] Quick Sort 퀵 정렬

[퀵 정렬의 이점]- 무작위로 분포되어 있고, 많은 양의 데이터를 정렬할 때도 효율적이고 빠르다 - 메모리 요구량이 작음 - 보통의 경우의 정렬 효율은 Log N이지만 이미 정렬된 배열을 정렬하면 O(n^2) 효율이 되므로 주의해야 한다.#include void swap(int &a, int &b); void QuickSort(int *arr, int start, int end); int main() { int qs[] = {7, 8, 5, 4, 3, 9, 1, 2, 6}; QuickSort(qs, 0, 8); for (int i = 0; i < (int)(sizeof(qs) / sizeof(*qs)); i++) { std::cout

C++ 2024.03.15

CommandInvokationFailure 에러 해결하는 네가지 방법

CommandInvokationFailure: Unable to install APK to device. Please make sure the Android SDK is installed and is properly configured in the Editor. See the Console for more details. 에러 해결하는 네가지 방법 1. 폰에 설치된 기존 앱을 삭제한다. 2. SDK를 다시 설치한다.-내 컴퓨터-속성-고급 시스템 설정-환경변수->시스템 변수에서 path에 C:\Users\본인계정명\AppData\Local\Android\sdk\platform-tools를 미리 설정해주고 android studio의 sdk manager를 통해 사용할 sdk를 설치한다-usb드라이버 등 필..

Unity 2019.03.27
728x90
반응형