본문 바로가기
반응형

개발/C++22

[C++] tan과 tan2의 차이점은 무엇입니까? 차이점은 무엇입니까atan 그리고atan2 C++에서? 학교 수학에서 우리는 탄젠트에 정의가 있다는 것을 압니다. tan(α) = sin(α) / cos(α) 함수에 제공하는 각도에 따라 4개의 사분면을 구분합니다. 의 표시sin,cos 그리고tan 다음 관계가 있습니다(정확한 배수를 무시하는 경우π/2): Quadrant Angle sin cos tan ------------------------------------------------- I 0 < α < π/2 + + + II π/2 < α < π + - - III π < α < 3π/2 - - + IV 3π/2 < α < 2π - + - 의 값을 감안할 때tan(α) 양수이면 각도가 1사분면인지 3사분면인지 구분할 수 없으며 음수이면 2사분면 또.. 2022. 10. 14.
구문을 사용하여 C++11에서 함수 포인터를 어떻게 typedef합니까? 나는 이것을 쓰고 싶다 typedef void (*FunctionPtr)(); 사용using. 어떻게 해야 할까요? 포인터에서 식별자를 제거하는 것을 제외하고는 유사한 구문을 가지고 있습니다. using FunctionPtr = void (*)(); 여기Example "추함을 제거"하려면 Xeo가 제안한 것을 시도하십시오. #include using FunctionPtr = std::add_pointer::type; 그리고 여기 또 다른demo. 포인터 형식 정의를 피하면 "추함"도 제거할 수 있습니다. void f() {} using Function_t = void(); Function_t* ptr = f; ptr(); http://ideone.com/e1XuYc 당신은 원하는type-id, 삭제하는 .. 2022. 10. 14.
[C++] #ifdef에 'or' 조건을 추가하는 방법 #ifdef 에 'or' 조건을 추가하려면 어떻게 해야 하나요? 나는 시도했다: #ifdef CONDITION1 || CONDITION2 #endif 이것은 작동하지 않습니다. #if defined(CONDITION1) || defined(CONDITION2) 작동해야합니다. :) #ifdef 타이핑이 조금 덜하지만 더 복잡한 조건에서는 잘 작동하지 않습니다. 이것을 사용할 수 있습니다- #if defined CONDITION1 || defined CONDITION2 //your code here #endif 이것도 마찬가지에요- #if defined(CONDITION1) || defined(CONDITION2) //your code here #endif 더 나아가- 그리고:#if defined COND.. 2022. 10. 14.
C ++에서 int를 문자열로 변환하는 가장 쉬운 방법 C ++에서 int를 동등한 문자열로 변환하는 가장 쉬운 방법은 무엇입니까? 두 가지 방법을 알고 있습니다. 더 쉬운 방법이 있습니까? (1) int a = 10; char *intStr = itoa(a); string str = string(intStr); (2) int a = 10; stringstream ss; ss std::string sstr( Args &&... args ) { std::ostringstream sstr; // fold expression ( sstr 2020. 9. 30.
STL 또는 Qt 컨테이너? STL에 상응하는 Qt 컨테이너 (QMap, QVector 등)를 사용할 때의 장단점은 무엇입니까? Qt를 선호하는 한 가지 이유를 알 수 있습니다. Qt 컨테이너는 Qt의 다른 부분으로 전달 될 수 있습니다. 예를 들어, QVariant와 QSettings를 채우는 데 사용할 수 있습니다 (단, 키가 문자열 인 QList 및 QMap / QHash 만 허용됨). 다른 것이 있습니까? 편집 : 응용 프로그램이 이미 Qt에 의존한다고 가정합니다. std : :( w) string 및 STL 컨테이너를 독점적으로 사용하고 Qt 등가물로 /에서 변환하는 것으로 시작했지만 이미 QString으로 전환했으며 Qt의 컨테이너를 점점 더 많이 사용하고 있음을 알게되었습니다. 문자열과 관련하여 QString은 std .. 2020. 9. 30.
역방향 반복기로 지우기를 호출하는 방법 나는 다음과 같은 것을 시도하고 있습니다. for ( std::list::reverse_iterator i = m_CursorStack.rbegin(); i != m_CursorStack.rend(); ++i ) { if ( *i == pCursor ) { m_CursorStack.erase( i ); break; } } 그러나 erase는 역방향 반복자가 아닌 반복기를 사용합니다. 역방향 반복기를 일반 반복기로 변환하는 방법 또는 목록에서이 요소를 제거하는 다른 방법이 있습니까? 더 많은 연구와 테스트를 거쳐 해결책을 찾았습니다. 표준 [24.4.1 / 1]에 따르면 i.base ()와 i의 관계는 다음과 같습니다. &*(reverse_iterator(i)) == &*(i .. 2020. 9. 30.
728x90