> 백엔드 개발 > C++ > C++ 표준 라이브러리의 템플릿 예는 무엇입니까?

C++ 표준 라이브러리의 템플릿 예는 무엇입니까?

PHPz
풀어 주다: 2024-05-09 08:21:01
원래의
554명이 탐색했습니다.

C++ 표준 라이브러리의 템플릿 적용: 벡터 템플릿: 동적으로 증가하는 요소 컬렉션을 저장하고 관리하는 데 사용됩니다. 맵 템플릿: 키-값 쌍을 저장하는 데 사용되며 키를 비교할 수 있고 값은 모든 유형이 될 수 있습니다. 사용자 정의 템플릿 클래스: 다양한 유형에 대해 매개변수화할 수 있는 일반 코드 클래스를 생성할 수 있습니다.

C++ 표준 라이브러리의 템플릿 예는 무엇입니까?

C++ 표준 라이브러리의 템플릿 예제

C++ 표준 라이브러리는 템플릿을 광범위하게 사용하여 재사용 가능하고 형식이 안전하며 효율적인 코드를 제공합니다. 템플릿은 다양한 유형에 대해 매개변수화할 수 있는 일반 코드를 생성하기 위한 청사진입니다.

벡터 템플릿

벡터는 C++ 표준 라이브러리에서 일반적으로 사용되는 템플릿 컨테이너입니다. 요소 컬렉션을 저장하고 관리하는 데 사용되는 동적 배열입니다.

#include <vector>

int main() {
  // 创建一个空 vector
  std::vector<int> v;

  // 添加元素
  v.push_back(1);
  v.push_back(2);
  v.push_back(3);

  // 访问元素
  for (int i = 0; i < v.size(); i++) {
    std::cout << v[i] << " ";
  }

  // 输出:1 2 3
  return 0;
}
로그인 후 복사

이 예에서는 벡터 템플릿을 사용하여 int 유형 데이터를 저장합니다. 빈 벡터를 만든 다음 push_back 메서드를 사용하여 요소를 추가했습니다. [] 연산자를 통해 요소에 액세스할 수 있습니다.

map template

map은 키-값 쌍을 저장하는 데 사용되는 또 다른 템플릿 컨테이너입니다. 키는 비교 가능한 모든 유형이 될 수 있으며 값은 모든 유형이 될 수 있습니다.

#include <map>

int main() {
  // 创建一个空 map
  std::map<std::string, int> m;

  // 添加键值对
  m["Alice"] = 20;
  m["Bob"] = 30;

  // 访问值
  std::cout << m["Alice"] << std::endl;  // 输出:20

  return 0;
}
로그인 후 복사

이 예에서 맵 템플릿은 문자열 유형의 키와 int 유형의 값을 저장하는 데 사용됩니다. 빈 맵을 만들고 [] 연산자를 사용하여 키-값 쌍을 추가했습니다. 키 이름으로 값에 접근할 수 있습니다.

사용자 정의 템플릿 클래스

표준 라이브러리에서 제공하는 템플릿 외에도 자체 템플릿 클래스를 만들 수도 있습니다. 예를 들어, 요소의 최소값 또는 최대값을 찾기 위해 템플릿 클래스를 만들 수 있습니다.

template <typename T>
T find_max(T a, T b) {
  return (a > b) ? a : b;
}

int main() {
  int max_int = find_max(10, 20);  // 返回 20
  double max_double = find_max(3.14, 2.71);  // 返回 3.14

  return 0;
}
로그인 후 복사

이 예에서는 find_max 템플릿 함수를 사용하여 두 요소의 최소값 또는 최대값을 찾습니다. 이 예에 표시된 것처럼 비교 가능한 유형에 대해 매개변수화할 수 있습니다.

위 내용은 C++ 표준 라이브러리의 템플릿 예는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿