首页  >  文章  >  后端开发  >  C++标准库中模板化的例子?

C++标准库中模板化的例子?

PHPz
PHPz原创
2024-05-09 08:21:01513浏览

模板在 C 标准库中的应用:vector 模板:用于存储和管理可动态增长的元素集合。map 模板:用于存储键值对,键可比较且值可任意类型。自定义模板类:允许创建可针对不同类型进行参数化的通用代码类。

C++标准库中模板化的例子?

C 标准库中的模板化示例

C 标准库广泛使用模板,提供可重复使用、类型安全且高效的代码。模板是用于创建通用代码的蓝图,它可以针对不同类型进行参数化。

vector 模板

vector 是 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;
}

在这个示例中,vector 模板被用于存储 int 类型的数据。我们创建了一个空 vector,然后使用 push_back 方法添加了元素。可以通过 [] 操作符访问元素。

map 模板

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;
}

在这个示例中,map 模板被用于存储 string 类型的键和 int 类型的值。我们创建了一个空 map,然后使用 [] 操作符添加了键值对。可以通过键名访问值。

自定义模板类

除了标准库提供的模板外,我们还可以创建自己的模板类。例如,我们可以创建一个模板类来查找元素的最小值或最大值:

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn