Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

STL과 C++ 표준 라이브러리의 차이점은 무엇입니까?


표준 템플릿 라이브러리(STL)는 C++ 표준 라이브러리의 많은 부분에 영향을 준 C++ 프로그래밍 언어용 소프트웨어 라이브러리입니다. 알고리즘, 컨테이너, 함수 및 반복자라는 네 가지 구성 요소를 제공합니다. "STL" 또는 "표준 템플릿 라이브러리"라는 용어는 ISO 14882 C++ 표준 어디에도 표시되지 않습니다. 따라서 C++ 표준 라이브러리를 STL로 지칭하는 것은 잘못된 것입니다. 즉, STL과 C++ 표준 라이브러리는 전자가 후자의 하위 집합인 2가지 다른 것입니다.

STL은 다음으로 구성됩니다.

컨테이너

STL에는 시퀀스 컨테이너와 연관 컨테이너가 포함됩니다. 컨테이너는 데이터를 저장하는 객체입니다. 표준 시퀀스 컨테이너에는 vector, deque 및 list가 포함됩니다. 표준 연관 컨테이너는 set, multiset, map, multimap, hash_set, hash_map, hash_multiset 및 hash_multimap입니다. 다른 컨테이너를 구현으로 사용하는 특정 인터페이스를 가진 컨테이너인 컨테이너 어댑터 큐, priority_queue 및 스택도 있습니다.

반복자

반복자는 프로그래머가 컨테이너를 순회할 수 있도록 하는 개체입니다. STL은 입력(값 시퀀스를 읽는 데 사용), 출력(값 시퀀스를 쓰는 데 사용), 앞으로(읽고, 쓰고, 앞으로 이동할 수 있음), 양방향(forward와 같은) 다섯 가지 유형의 반복자를 구현합니다. 반복자이지만 뒤로 이동할 수도 있음) 및 임의 액세스(한 작업에서 원하는 수의 단계로 자유롭게 이동). 반복자는 STL의 일반성을 허용하는 주요 기능입니다.

알고리즘

STL의 알고리즘은 요소 범위에서 사용하도록 특별히 설계된 기능 모음입니다. 범위는 배열 또는 일부 STL 컨테이너의 인스턴스와 같이 반복자 또는 포인터를 통해 액세스할 수 있는 개체의 시퀀스입니다. STL의 알고리즘 예:sort(범위 내 요소 정렬), binary_search(값이 정렬된 순서로 존재하는지 테스트), min_element(범위 내 가장 작은 요소 반환) 등 이러한 모든 알고리즘은 허용되는 모든 데이터 유형에 적용될 수 있습니다. 템플릿으로.

C++ 프로그래밍 언어에서 C++ 표준 라이브러리는 핵심 언어 및 C++ ISO 표준 자체로 작성된 클래스 및 함수의 모음입니다. C++ 표준 라이브러리는 여러 일반 컨테이너, 이러한 컨테이너를 활용 및 조작하는 함수, 함수 개체, 일반 문자열 및 스트림(대화형 및 파일 I/O 포함), 일부 언어 기능 지원, 정사각형 찾기와 같은 일상적인 작업을 위한 기능을 제공합니다. 숫자의 근. 다음은 C++ 표준 라이브러리의 일부 기능입니다 -

스트림

이 라이브러리는 C++에서 사용할 수 있는 다양한 유형의 스트림을 처리하는 데 사용됩니다. 예를 들어 스트림은 일반적으로 파일 스트림을 나타내며 이 클래스는 파일을 만들고 파일에 정보를 쓰고 파일에서 정보를 읽는 데 사용할 수 있습니다. 스트림은 문자열 스트림을 나타내며 일반적으로 문자열을 조작하는 데 사용됩니다.

컨테이너

이것은 벡터, 세트, ​​맵, 스택, 대기열 등과 같은 다양한 데이터 유형에 데이터를 저장하는 데 사용되는 클래스 모음입니다. 이들은 STL의 구성 요소입니다.

일반 라이브러리

알고리즘, Chrono for time, iterator, memory 등과 같은 라이브러리

숫자 라이브러리

이 라이브러리는 C++ 프로그램이 반수 연산을 수행하는 데 사용할 수 있는 구성 요소 모음입니다. 예를 들어, 는 클래스 템플릿을 정의하고 복소수를 표현하고 조작하기 위한 수많은 함수를 정의하며, 은 (의사)난수 등을 생성하는 데 사용됩니다.

스레딩

기본적으로 동시성을 다루는 C++11에 도입된 라이브러리입니다.

C 표준 라이브러리

C 표준 라이브러리의 각 헤더는 .h를 제거하고 시작 부분에 'c'를 추가하여 생성된 다른 이름으로 C++ 표준 라이브러리에 포함됩니다. 예를 들어 'time.h'는 'ctime'이 됩니다.