模板如何提升工業代碼復用性
實戰項目:創建通用【工業設備容器】模板類
- 類模板的定義與實例化
- 模板參數默認值?
#include <iostream>
#include <string>
using namespace std;template <typename T = string>
class IndustrialContainer {
private:T data;
public:IndustrialContainer(T d) : data(d) {}void display() {cout << "當前存儲:" << data << endl;}
};int main() {IndustrialContainer<int> ic1(100); // 存儲整型(如設備ID)IndustrialContainer<> ic2("溫度傳感器"); // 使用默認string類型ic1.display(); // 輸出:當前存儲:100ic2.display(); // 輸出:當前存儲:溫度傳感器return 0;
}
vector在設備管理中的實戰技巧
實戰項目:模擬工業設備管理
- vector的增刪改查
- 迭代器的遍歷
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;class Device {
public:string name;int id;Device(string n, int i) : name(n), id(i) {}
};int main() {vector<Device> devices;// 添加設備devices.push_back(Device("傳感器", 1001));devices.emplace_back("機械臂", 2002); // 更高效的添加方式// 遍歷設備(使用迭代器)cout << "=== 設備列表 ===" << endl;for (auto it = devices.begin(); it != devices.end(); ++it) {cout << "ID:" << it->id << " 名稱:" << it->name << endl;}// 查找設備(Lambda表達式)int targetId = 2002;auto result = find_if(devices.begin(), devices.end(), [targetId](const Device& d){ return d.id == targetId; });if (result != devices.end()) cout << "找到設備:" << result->name << endl;elsecout << "設備未找到" << endl;return 0;
}
算法模板在工廠模式中的妙用
實戰項目:優化工業設備工廠系統
c++實戰項目:工業設備工廠系統_通過c++開發制造業項目的源代碼-CSDN博客
- sort():排序
- find_if:條件查找
- for_each():遍歷操作
#include <vector>
#include <algorithm>// 在原有工廠類中添加模板方法
template <typename T>
class DeviceFactory {
private:vector<T*> devices;
public:void addDevice(T* dev) {devices.push_back(dev);}void showAllDevices() {for_each(devices.begin(), devices.end(), [](T* dev){ dev->displayInfo(); });}
};// 使用示例
int main() {DeviceFactory<IndustrialDevice> factory;factory.addDevice(new Sensor("壓力傳感器"));factory.addDevice(new RobotArm(8000));factory.showAllDevices();return 0;
}
?