C++的模板和STL(Standard Template Library,标准模板库)是C++编程中非常强大的工具,它们极大地提高了代码的重用性和效率。本文将介绍C++模板的基本概念以及STL库的一些常用组件。
1. 什么是模板?
模板是C++支持泛型编程的一种机制。它允许程序员编写与类型无关的代码,从而可以用相同的代码来处理不同类型的数据。模板可以应用于函数和类。
函数模板
cpp复制代码
template <typename T> | |
T max(T a, T b) { | |
return (a > b) ? a : b; | |
} | |
// 使用 | |
int i = max<int>(3, 4); | |
double d = max<double>(3.14, 2.71); |
类模板
cpp复制代码
template <typename T> | |
class Box { | |
public: | |
T value; | |
Box(T val) : value(val) {} | |
void display() { | |
std::cout << value << std::endl; | |
} | |
}; | |
// 使用 | |
Box<int> intBox(10); | |
Box<std::string> stringBox("Hello, World!"); |
2. STL库简介
STL库是一组模板类和函数的集合,它提供了大量的数据结构和算法,用于处理各种类型的数据。STL库分为三大部分:容器(Containers)、迭代器(Iterators)和算法(Algorithms)。
容器
容器是用于存储数据的对象,STL提供了多种容器,如vector
、list
、map
、set
等。每种容器都有其特定的用途和性能特点。