12.4.4 模板类collate
模板类collate的声明形式为:

类collate<charT>提供使用collation和hashing处理字符串的特性。本地成员函数模板operator()使用collate刻面,目的是允许一个locale对象直接作为处理字符串的标准算法和容器的预测参数。实例化类collate<char>和collate<wchar_t>可以应用于字典式(lexico-graphic)排序。
1.类collate的成员

函数的作用是:按照各自刻面定义的规则比较两个字符串是否相等。参数(low1,high1)是参与比较的第一个序列;参数(low2,high2)是参与比较的第二个序列。函数返回值一般有3种可能:-1、0和1。如果第一个序列小于第二个序列,函数返回-1;如果第一个序列等于第二个序列,函数返回0;如果第一个序列大于第二个序列,函数返回1。

函数的作用:一个字符序列从locale类对象到字符串string的转换可能被用于字典式和相同类locale的另一字符序列的比较。参数low和参数high代表已转换序列的起始字符。函数返回值包含了被转换的字符序列。

hash()函数会按照刻面的规则,判断序列的散列值。参数low和参数high代表输入序列的起始位置和结束位置。
2.类collate的虚函数

如果第一个字符串大于第二个字符串,函数返回1;如果第一个字符串小于第二个字符串,函数返回-1;如果第一个字符串相等第二个字符串,函数返回0。实例化类collate<char>和collate<wchart>可以实施字典式排序。

函数返回值类型是basic_string<charT>。比较方式是字典式比较。

函数返回值是整型值,其值等于调用hash()函数的结果。
3.模板类collate_byname

例12-11


例12-11的执行效果如图12-1所示。

图12-1 例12-1的执行效果