C++에서 STL 컨테이너란?

C Eseo Stl Keonteineolan



C++에서는 STL(표준 템플릿 라이브러리), 컨테이너 다른 개체의 컬렉션을 저장하는 데 사용되는 개체입니다. 이들은 클래스 템플릿과 유사하게 작동하고 많은 수의 요소 유형을 지원하며 해당 요소에 직접 또는 반복자를 통해 액세스할 수 있는 멤버 함수를 제공합니다.

C++ STL 컨테이너 유형

C++에는 세 가지 유형의 STL이 있습니다. 컨테이너 , 아래에 나열되어 있습니다.







1: 순차 컨테이너

C++에서 순차 컨테이너를 사용하면 순차적으로 검색할 수 있는 항목을 저장할 수 있습니다. 이것들 컨테이너 데이터 구조의 배열 또는 연결된 목록으로 인코딩됩니다. 일부 유형의 순차 컨테이너는 다음과 같습니다.



  • 벡터: 연속적인 방식으로 메모리에 저장되는 동적으로 크기가 조정되는 배열입니다.
  • 무엇에 대해: 삽입 및 삭제 작업을 모두 지원하는 양방향 대기열을 나타냅니다.
  • 정렬: 크기는 고정된 상태로 컴파일 중에 할당되는 정적 배열입니다.
  • 목록: 목록의 모든 위치에서 요소를 빠르게 삽입하고 삭제하는 이중 연결 목록입니다.
  • 전달 목록: 리스트와 같은 단일 연결 리스트이지만 한 방향으로만 순회할 수 있습니다.



이 예에서는 다음을 사용합니다. 벡터 클래스 방법을 보여주기 위해 잇달아 일어나는 컨테이너 작동합니다.





#include
#include <벡터>
네임스페이스 표준 사용;
정수 메인 ( ) {
// int의 벡터를 초기화 유형
벡터 < 정수 > 숫자 = { 10 , 2 , 16 , 70 , 5 } ;
// 벡터를 인쇄하십시오
쿠우트 << '숫자는: ' ;
~을 위한 ( 자동 & i: 숫자 )
{
쿠우트 << << ', ' ;
}
반품 0 ;
}

위의 코드는 잇달아 일어나는 컨테이너 벡터 형식으로 정수 배열을 저장할 수 있습니다. 프로그램은 정수 유형의 벡터를 초기화하고 값을 할당하고 루프를 사용하여 인쇄합니다. 이 예제는 다음을 사용하여 C++에서 데이터를 저장하고 액세스하는 것이 얼마나 쉬운지 보여줍니다. 순차 컨테이너 .

2: 연관 컨테이너

연관 컨테이너 비교 연산자에 의해 정의된 특정 순서로 요소를 저장할 수 있습니다. 같지 않은 순차 컨테이너 , 요소의 순서 연관 컨테이너 사용자가 요소를 구성하고 액세스할 수 있도록 하는 키를 사용하여 유지 관리됩니다. 요소가 요소에 삽입되면 연관 컨테이너 , 키를 기준으로 올바른 위치에 자동으로 정렬됩니다. 이러한 유형의 컨테이너는 이진 트리 데이터 구조와 같이 내부적으로 구현됩니다.

그만큼 연관 컨테이너 다음과 같이 분류됩니다.

  • 지도: 고유 키를 사용하여 정렬된 키-값 쌍 모음
  • 멀티맵: 키를 사용하여 정렬된 키-값 쌍의 모음
  • 세트: 고유한 키를 수집하고 키별로 정렬합니다.
  • 다중 세트: 키를 사용하여 정렬된 키 모음

방법을 설명하기 위해 연관 컨테이너 작동합니다. 세트 클래스 이 예에서.

#include
#include <세트>
네임스페이스 표준 사용;
정수 메인 ( )
{
// 초기화 세트 정수의 유형
세트 < 정수 > 숫자 = { 10 , 2 , 16 , 70 , 5 } ;
// 인쇄 세트
쿠우트 << '숫자는: ' ;
~을 위한 ( 자동 & i: 숫자 )
{
쿠우트 << << ', ' ;
}
반품 0 ;
}

위의 코드는 연관 컨테이너의 예인 C++의 정수 세트를 초기화합니다. 세트는 요소가 기본적으로 오름차순으로 정렬되도록 합니다. 그런 다음 코드는 for 루프를 사용하여 세트의 숫자를 인쇄합니다.

3: 정렬되지 않은 연관 컨테이너

C++에서는 정렬되지 않은 연관 컨테이너 정렬되지 않은 버전을 제공하는 데 사용됩니다. 연관 컨테이너 . 해시 테이블 데이터 구조처럼 내부적으로 구현됩니다. 그만큼 연관 컨테이너 다음과 같이 분류됩니다.

  • 정렬되지 않은 맵: 고유 키를 사용하여 해시된 키-값 쌍의 모음입니다.
  • 정렬되지 않은 멀티맵: 키를 사용하여 해시된 키-값 쌍 컬렉션입니다.
  • 정렬되지 않은 세트: 키를 사용하여 해시된 고유 키 모음입니다.
  • 정렬되지 않은 다중 집합: 키를 사용하여 해시된 키 모음입니다.

방법을 설명하기 위해 정렬되지 않은 연관 컨테이너 작동합니다. 정렬되지 않은 세트 이 예에서는 클래스입니다.

#include
#include <정렬되지 않은 세트>
네임스페이스 표준 사용;
정수 메인 ( )
{
// int의 unordered_set 초기화 유형
unordered_set < 정수 > 숫자 = { 10 , 2 , 16 , 70 , 5 } ;
// 인쇄 세트
쿠우트 << '숫자는: ' ;
~을 위한 ( 자동 & i: 숫자 )
{
쿠우트 << << ', ' ;
}
반품 0 ;
}

결론

STL C++ 컨테이너 다른 개체의 컬렉션을 저장하는 홀더 개체입니다. 클래스 템플릿과 유사하게 작동하며 많은 수의 요소 유형을 지원합니다. 이 자습서에서는 가장 일반적으로 사용되는 STL C++ 컨테이너 유형에 대해 설명했습니다. 순차 컨테이너, 연관 컨테이너 게다가 정렬되지 않은 연관 컨테이너 .