在Linux环境下使用C++进行模板编程,模板是C++标准库中的一个重要特性,它允许程序员编写与数据类型无关的代码。模板可以用于创建泛型函数或类。
基础概念:
优势:
类型:
应用场景:
常见问题及解决方法:
示例代码(函数模板):
#include <iostream>
// 函数模板定义
template <typename T>
void swap(T &a, T &b) {
T temp = a;
a = b;
b = temp;
}
int main() {
int x = 10, y = 20;
std::cout << "Before swap: x = "<< x << ", y = "<< y << std::endl;
swap(x, y); // 使用函数模板
std::cout << "After swap: x = "<< x << ", y = "<< y << std::endl;
return 0;
}
示例代码(类模板):
#include <iostream>
// 类模板定义
template <typename T>
class Array {
private:
T *ptr;
int size;
public:
Array(T arr[], int s);
void print();
};
template <typename T>
Array<T>::Array(T arr[], int s) {
ptr = new T[s];
size = s;
for(int i = 0; i < size; i++)
ptr[i] = arr[i];
}
template <typename T>
void Array<T>::print() {
for (int i = 0; i < size; i++)
std::cout << ptr[i] << " ";
std::cout << std::endl;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr)/sizeof(arr[0]);
Array<int> a(arr, n); // 使用类模板
a.print();
return 0;
}
在Linux环境下编译和运行这些代码,通常使用g++编译器,例如:
g++ -o program program.cpp
./program
确保你的Linux系统已经安装了g++编译器。如果没有安装,可以使用包管理器进行安装,例如在Ubuntu或Debian系统上使用sudo apt-get install g++
。
领取专属 10元无门槛券
手把手带您无忧上云