Les bibliothèques de modèles et les bibliothèques génériques implémentent une programmation générique en permettant le paramétrage des types de données et en fournissant des modèles prédéfinis, améliorant ainsi la réutilisabilité et la flexibilité du code, notamment : Bibliothèque de modèles : fournissant un mécanisme de déclaration de modèle pour créer des données basées sur un type ou une fonction paramétré par type, tel que le conteneur de modèles std::vector. Bibliothèque générique : fournit des fonctions et des types de modèles prédéfinis qui effectuent des tâches courantes, telles que la fonction générique std::sort pour trier les éléments.
Le rôle des bibliothèques de modèles et des bibliothèques génériques dans la programmation générique C++
Vue d'ensemble
La programmation générique en C++ permet le développement de code qui fonctionne pour différents types de données, améliorant ainsi la reproductibilité du code. la flexibilité. Les bibliothèques de modèles et les bibliothèques génériques sont des composants clés pour la mise en œuvre de la programmation générique.
Bibliothèque de modèles
La bibliothèque de modèles fournit un mécanisme pour déclarer des modèles, vous permettant de créer des types ou des fonctions paramétrés basés sur des types de données. Par exemple, std::vector
est un conteneur de modèles qui accepte un paramètre de type pour stocker des éléments. std::vector
是一个模板容器,接受一个类型参数来存储元素。
代码示例:
#include <vector> // 定义存储整数的模板向量 template <typename T> using IntVector = std::vector<T>; // 创建一个存储整数的向量 IntVector<int> myVector; myVector.push_back(10);
泛型库
泛型库提供预定义的模板函数和类型,可用于执行各种常见任务。例如,std::sort
Exemple de code :
#include <algorithm> // 比较函数 int compare(const int& a, const int& b) { return a > b; } // 对向量进行降序排序 std::sort(myVector.begin(), myVector.end(), compare);
Bibliothèque générique
Les bibliothèques génériques fournissent des fonctions et des types de modèles prédéfinis qui peuvent être utilisés pour effectuer une variété de tâches courantes. Par exemple,std::sort
est une fonction générique qui accepte une fonction de comparaison pour trier les éléments. Exemple de code :
🎜A = [[1, 2], [3, 4]] B = [[5, 6], [7, 8]] C = A * B = [[19, 22], [43, 50]]
#include <vector> // 矩阵相乘模板函数 template <typename T> std::vector<std::vector<T>> matrixMultiply(const std::vector<std::vector<T>>& a, const std::vector<std::vector<T>>& b) { int m = a.size(), n = a[0].size(), p = b[0].size(); std::vector<std::vector<T>> c(m, std::vector<T>(p, 0)); for (int i = 0; i < m; i++) { for (int j = 0; j < p; j++) { for (int k = 0; k < n; k++) { c[i][j] += a[i][k] * b[k][j]; } } } return c; } // 矩阵相乘实战 auto c = matrixMultiply(a, b);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!