본문 바로가기
반응형

개발/C++22

if… else if 문을 확률로 정렬하면 어떤 효과가 있습니까? 특히, 일련의 if ... else if 문이 있고 각 문이 참으로 평가 될 상대 확률을 미리 알고 있다면 확률 순서대로 정렬하는 데 실행 시간이 얼마나 차이가나요? 예를 들어 다음을 선호해야합니까? if (highly_likely) //do something else if (somewhat_likely) //do something else if (unlikely) //do something 이에?: if (unlikely) //do something else if (somewhat_likely) //do something else if (highly_likely) //do something 정렬 된 버전이 더 빠를 것이 분명해 보이지만 가독성이나 부작용의 존재를 위해 최적화되지 않은 순서로 정렬 할 수.. 2020. 9. 30.
보호 또는 개인 생성자 만있는 클래스에서 :: std :: make_shared를 어떻게 호출합니까? C:\Anaconda3\envs\YYcompany\lib\site-packages\pymysql\cursors.py:329: Warning: (1265, "Data truncated for column 'original_url' at row 1") self._do_get_result() 작동하지 않는 코드가 있지만 의도는 분명하다고 생각합니다. testmakeshared.cpp #include class A { public: static ::std::shared_ptr create() { return ::std::make_shared(); } protected: A() {} A(const A &) = delete; const A &operator =(const A &) = delete; }; ::std:.. 2020. 9. 30.
흥미로운 반복 템플릿 패턴 (CRTP)은 무엇입니까? 책을 참조하지 않고 코드 예제와 함께 CRTP에 대한 좋은 설명을 제공 할 수 있습니까? 요컨대, CRTP는 클래스 A가 클래스 A 자체에 대한 템플릿 전문화 인 기본 클래스를 갖는 경우입니다. 예 template class X{...}; class A : public X {...}; 이상하게 되풀이되지 않나요? :) 자, 이것은 당신에게 무엇을 제공합니까? 이것은 실제로 X 템플릿에 해당 전문화에 대한 기본 클래스가 될 수있는 기능을 제공합니다. 예를 들어 다음과 같은 일반 싱글 톤 클래스 (단순 버전)를 만들 수 있습니다. template class Singleton { public: static ActualClass& GetInstance() { if(p == nullptr) p = new Actu.. 2020. 9. 30.
함수 템플릿의 기본 템플릿 인수 기본 템플릿 인수가 클래스 템플릿에서만 허용되는 이유는 무엇입니까? 멤버 함수 템플릿에서 기본 유형을 정의 할 수없는 이유는 무엇입니까? 예를 들면 : struct mycclass { template void mymember(T* vec) { // ... } }; 대신 C ++에서는 기본 템플릿 인수가 클래스 템플릿에서만 허용되도록 강제합니다. 기본 템플릿 인수를 제공하는 것이 좋습니다. 예를 들어 정렬 함수를 만들 수 있습니다. template > void sort(Iterator beg, Iterator end, Comp c = Comp()) { ... } C ++ 0x는이를 C ++에 도입합니다. Bjarne Stroustrup의이 결함 보고서 : 함수 템플릿에 대한 기본 템플릿 인수 및 그가 말하.. 2020. 9. 30.
4x4 행렬 반전 4x4 매트릭스를 반전하는 방법에 대한 샘플 코드 구현을 찾고 있습니다. Gaussian eleminiation, LU 분해 등이 있다는 것을 알고 있지만 자세히 살펴 보는 대신 실제로이 작업을 수행 할 코드를 찾고 있습니다. 언어 이상적으로는 C ++, 데이터는 열 우선 순서로 16 개의 부동 소수점 배열로 제공됩니다. 여기: bool gluInvertMatrix(const double m[16], double invOut[16]) { double inv[16], det; int i; inv[0] = m[5] * m[10] * m[15] - m[5] * m[11] * m[14] - m[9] * m[6] * m[15] + m[9] * m[7] * m[14] + m[13] * m[6] * m[11] - m.. 2020. 9. 26.
"계속하려면 아무 키나 누르시겠습니까?"를 시뮬레이션하는 방법 사용자가 키보드에서 문자를 입력하면 다음 코드 줄로 이동해야하는 C ++ 프로그램을 작성하려고합니다. 내 코드는 다음과 같습니다. char c; cin>>c; cout 2020. 9. 26.
728x90