Page 16 -
P. 16

알고리즘의 활용 범위는 매우 넓다. 원소를 검색하거나 개수를 셀 수도 있고, 범위를 찾을 수도 있
               으며, 원소끼리 비교하거나 변환할 수도 있다. 컨테이너에서 원소를 생성하거나 교체하거나 제거
               하는 알고리즘도 있다. 당연히 정렬(sort), 순열(permute), 분할(partition)하는 알고리즘도 있고, 컨

               테이너에서 최대 원소와 최소 원소를 구하는 알고리즘도 있다. 또한, 콜러블(callable)이나 함수 오
               브젝트, 람다 함수 등으로 커스터마이즈(customize)할 수도 있다. 콜러블은 원소 탐색이나 변환에
               대한 특수한 기준을 제공한다. 이를 사용하면 알고리즘을 더욱 강력하게 만들 수 있다.




               1.2.3 수치 연산


               C++가 제공하는 수치 연산 관련 라이브러리는 두 가지다. 하나는 무작위수 라이브러리이고, 다

               른 하나는 C에서 물려받은 수학 함수다.
               무작위수 라이브러리(random number library)(난수 라이브러리)는 두 부분으로 구성된다. 하나는

               무작위수 생성기(random number generator)(난수 생성기)이고, 다른 하나는 생성된 무작위수의 분
               포에 대한 것이다. 무작위수 생성기는 최댓값과 최솟값 사이에 있는 일련의 무작위수를 생성한다.
               이렇게 생성되는 무작위수는 특정한 분포를 따른다.

               C++는 C로부터 수많은 표준 수학 함수(mathematical standard function)를 물려받았다. 예를 들어
               로그 함수와 지수 함수, 삼각 함수 등이 있다.





               1.2.4 텍스트 처리


               C++는 텍스트 처리를 위해 스트링과 정규 표현식에 관련된 두 가지 강력한 라이브러리를 제공
               한다.

               std::string은 텍스트 분석과 수정에 관련된 메서드를 다양하게 제공한다. 문자에 대한 std::
               vector와 공통점이 많기 때문에 STL 알고리즘을 std::string에도 사용할 수 있다. std::string은
               C의 스트링을 좀 더 쉽고 안전하게 사용하도록 확장한 것이다. C++ 스트링은 메모리를 직접 관
               리한다.

               std::string과 달리 std::string_view는 복사 연산이 가볍다. std::string_view는 std::string
               에 대한 비소유 레퍼런스(non-owning reference)다.





         32





     c++_06.indd   32                                                                        2021-11-19   오전 9:25:42
   11   12   13   14   15   16   17   18   19   20   21