부스트 라이브러리 예제

Compartir

2/08/2019

Por

Categoría: Sin categoría

Comentarios: 0

스마트 포인터에는 문제가 있습니다. 한 가지, 그들은 상대적으로 쉽게 구현, 하지만 그들은 바로 얻을 매우 힘든. 처리 해야 할 많은 경우가 있으며 표준 C ++ 라이브러리에서 제공하는 std::auto_ptr 클래스는 많은 상황에서 부적절하다고 널리 인식되며 이제 더 이상 사용되지 않습니다. 부스트는 벡터와 행렬에 대한 BLAS 지원과 uBLAS 선형 대수 라이브러리 (빠른 대체 라이브러리는 아르마딜로와 에이겐을 포함)를 포함한다. uBlas선형 대수 작업의 넓은 범위를 지원 하 고 ATLAS, BLAS 및 LAPACK 등 널리 사용 되는 일부 숫자 라이브러리에 바인딩을 가지고 있습니다. 이하, 부스트 폴더를 BOOST_ROOT로 참조 합니다. 이 지침에 BOOST_ROOT가 표시될 때마다 이 PC문서라이브러리boost_1_65_0으로 바꿔야 합니다. Boost는 분배 독립적인 의사 난수 생성기 및 PRNG 독립적인 확률 분포를 제공하여 콘크리트 생성기를 구축하기 위해 결합됩니다. 요즘, 그리고 새로운 BH 패키지 덕분에, 설치 하는 경우, 편집에 R에 의해 사용 하기 위해 부스트 헤더를 제공, 그것은 단지 포함 하 여 작동 [[Rcpp::depends (BH)]] 속성 우리가 여기 처럼.

우리는 효율적으로 경쟁 프로그래밍에서이 라이브러리를 사용할 수 있지만,이 전에 우리는 당신의 온라인 판사가 부스트를 지원해야합니다 있는지 확인해야합니다. 다음은 사용할 수있는 몇 가지 멋진 트릭입니다 :- 다중 정밀 플로트를 사용하여, 우리는 50 및 100 소수점 자리까지 정밀도를 얻을 수 있습니다. 이를 위해 우리는 각각 cpp_float_50 또는 cpp_dec_float_100을 사용할 수 있습니다. 더 나은 아이디어를 얻을 수있는 예제를 보자. 아래 예제에서는 가수와 노래를 정의합니다. 각 클래스에는 다른 클래스의 인스턴스에 대한 포인터가 있습니다. 이렇게 하면 두 클래스 간에 순환 참조가 만들어집니다. weak_ptr과 shared_ptr을 모두 사용하여 각 클래스에 대한 상호 참조를 유지합니다. 이제 프로젝트에서 Boost 헤더 파일및 컴파일된 라이브러리를 사용할 수 있도록 Visual Studio에 Boost 라이브러리에 대해 알려야 합니다.

Boost는 조직이며, 휴대용, 동료 평가, 오픈 소스 C ++ 라이브러리를 제공합니다. 대부분의 C++ 표준 위원회의 라이브러리 기술 보고서 1(TR1) 기능은 Boost에서 수행된 작업을 기반으로 하며 컴파일러 공급업체가 C++ 라이브러리 배포판에 TR1을 포함할 때까지 Boost 웹 사이트는 TR1을 찾는 개발자의 첫 번째 중지 상태로 유지됩니다. 구현. 다음은 컴파일 중에 계수를 계산하는 예입니다. 재귀 템플릿 인스턴스화를 통해 루핑을 보여 줍니다. 또한 템플릿 메타프로그래밍(TMP)에서 변수를 만들고 사용하는 한 가지 방법을 보여 줍니다: TR1은 새 구성 요소를 지정하고 모두 부스트 네임스페이스에 있습니다. 예를 들어 shared_ptr의 전체 이름은 처음에는 부스트 라이브러리를 사용하여 두 개의 거대한 숫자를 곱하는 것입니다. 부스트는 STL의 많은 기능에 대한 훌륭한 확장 또는 대안역할을 할 수 있지만. 하지만 다음 주의 사항에 유의 해야 합니다. 부스트는 철저하게 설계되고 동료 검토라이브러리의 핵심입니다.