我想按字典顺序对文件的文本进行排序,但我无法理解字典顺序的真正作用。
排序字符串会产生另一个问题;关系运算符使用 ASCII 值,所以
betty < Diane
应该为真时为假。
考虑一个示例列表: 贝蒂、黛安、123 岁、安娜、梅根、查尔斯,二岁,12 岁。
我如何按字典顺序设置它?
最佳答案
方法:
- 使用
map <convert_to_lower_case(words) as string, index as integer>
将所有单词放入列表中。 然后创建一个排序 vector
myVec
使用:for(it_type iterator = m.begin(); iterator != m.end(); iterator++) { myVec.push_back(original_list[it->second]); }
myVec
是您要查找的按字典顺序排序的列表。
您需要实现 convert_to_lower_case(word)
:
for(int i = 0; str[i]; i++){
word[i] = tolower(str[i]);
}
其他答案也很好,使用比较器对 vector 进行排序。
关于c++ - 字符串的字典序比较[不区分大小写],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40446250/