代码优化,添加迭代器 template <typename Compare> class CustomOrderList{ public: CustomOrderList(){ } ~CustomOrderList(){ } void append(order::Order* pOrder){ m_orderList.insert(pOrder); } void remove(order::Order* pOrder){ m_orderList.erase(pOrder); } size_t size()const { return m_orderList.size(); } bool empty(){ return m_orderList.empty(); } template<typename Func> void apply(Func&& func)const{ func(m_orderList); } public: std::set<order::Order*,Compare> m_orderList; };
时间: 2024-01-12 21:02:18 浏览: 68
这段代码看起来已经很简洁了,但还有一些小的优化可以进行:
1. 构造函数和析构函数可以去掉,因为默认的构造函数和析构函数已经能够满足需求。
2. 可以将 `size()` 和 `empty()` 函数声明为 const 成员函数,以表明它们不会修改对象的状态。
3. 可以将 `apply()` 函数的参数类型改为 `const Func&`,以避免拷贝构造函数的调用。
下面是优化后的代码:
```
template <typename Compare>
class CustomOrderList {
public:
void append(order::Order* pOrder) {
m_orderList.insert(pOrder);
}
void remove(order::Order* pOrder) {
m_orderList.erase(pOrder);
}
size_t size() const {
return m_orderList.size();
}
bool empty() const {
return m_orderList.empty();
}
template <typename Func>
void apply(const Func& func) const {
func(m_orderList);
}
private:
std::set<order::Order*, Compare> m_orderList;
};
```
阅读全文