12.5.5 字符串校勘
2025年09月26日
12.5.5 字符串校勘
collate刻面用于处理字符串排序时各种不同约定间的差异。针对同一字符序列,不同的语言进行排序时,规则也不相同。collate刻面可以提供用户熟悉的字符串排序。表12-35中列出了部分刻面collate的部分成员函数。
表12-35 collate刻面的部分成员函数
collate刻面是模板类,以字符型别charT作为模板参数。传给collate成员函数的字符串,是型别为const charT∗的迭代器指针。不能保证basic_string<charT>中的迭代器是指针。很有必要为指针型别和数量不限的迭代器型别配备collation刻面。locale中特殊的便捷函数可以进行字符串比较。例如,
仅仅是对compare有效。C++标准程序库没有针对collate的另外两个成员函数定义对应的便捷函数。
transform()函数返回型别为basic_string<charT>的对象。字符串的字典顺序和使用collate()的原始字符串相同。若字符串有必要和其他众多字符串比较,该顺序可协助提高性能。决定字符串字典顺序的动作远比collate()好得多。地域化的排序规则可能相对复杂。
C++标准程序库仅仅强制要求支持collate<char>和collate<wchar_t>两个实例化对象。对于其他字符型别,用户需要自定义特化版本。