C++ 中的策略编程与名称查找
策略编程概述
在 C++ 编程中,策略编程是一种强大的技术,它允许我们通过类或类模板来定制其他类模板的行为。虽然特性(traits)和策略(policy)之间的界限有些模糊,但简单来说,特性是静态的特征,而策略则代表动态的行为。
在标准库中,字符串和流类使用 char_traits 策略类模板来实现特定类型的字符比较、字符数组复制等行为。标准库为 char 和 wchar_t 类型提供了相应的策略实现。
假设我们正在编写一个高性能服务器,经过精心设计、实现和测试后,发现 std::string 的性能带来了显著的开销。在我们的特定应用中,内存充足,但处理器时间非常宝贵。此时,如果能轻松地将 std::string 的实现从空间优化切换到速度优化,那将非常理想。然而,我们通常需要自己编写满足需求的字符串替代类。在编写自定义类时,会发现需要重写很多成员函数,如 find_first_of 等,这些函数与我们的特定实现并无直接关联,而且大多数字符串实现中这些函数基本相同,这无疑是一种时间上的浪费。
策略编程的核心思想就是解决这类问题。想象一下,如果我们有一个字符串类模板,它接受一个额外的模板参数,通过这个参数可以选择字符串的存储机制,根据需求替换为内存优化或处理器优化的实现,那编程工作将会变得多么简单。实际上, std::string 类在一定程度上提供了这种灵活性,因为它是 std::basic_string <
C++策略编程与名称查找解析
超级会员免费看
订阅专栏 解锁全文
45万+

被折叠的 条评论
为什么被折叠?



