模板在 C 标准库中的应用:vector 模板:用于存储和管理可动态增长的元素集合。map 模板:用于存储键值对,键可比较且值可任意类型。自定义模板类:允许创建可针对不同类型进行参数化的通用代码类。
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中文网其他相关文章!