c++ string的字典排序

降序排序:

bool cmp(string a, string b)
{   
    return strcmp(a.c_str(), b.c_str()) > 0;
}   

int main(void)
{
	vector<string> ans;

	ans.push_back("333");
	ans.push_back("5");

	sort(ans.begin(), ans.end(), cmp);
	vector<string>::iterator p = ans.begin();

	for(p=ans.begin(); p!=ans.end(); ++p)
		cout << *p << endl;  //输出 “5” “333”
	return 0;
}

升序排序:

bool cmp(string a, string b)
{
	return strcmp(a.c_str(), b.c_str()) < 0;
}

int main(void)
{
	vector<string> ans;

	ans.push_back("333");
	ans.push_back("5");

	sort(ans.begin(), ans.end(), cmp);
	vector<string>::iterator p = ans.begin();

	for(p=ans.begin(); p!=ans.end(); ++p)
		cout << *p << endl;   //输出 "333" "5"
	return 0;
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++中的string可以使用sort函数进行排序。在引用\[1\]的代码中,使用了sort函数对字符串数组a进行排序。首先,对每个字符串a\[i\]进行排序,然后将排序后的字符串存储在数组b\[i\]中。接着,对数组b进行排序,并使用一个变量ans记录不同的字符串个数。最后输出ans即为排序后的结果。引用\[2\]中的代码也使用了sort函数对字符串数组a进行排序,不同的是使用了自定义的cmp函数作为排序的比较函数。引用\[3\]是C++string类中重载的小于号运算符的实现,内部调用了compare函数进行字符串的比较。所以,C++中的string可以通过sort函数进行排序,可以使用默认的小于号运算符进行比较,也可以自定义比较函数进行排序。 #### 引用[.reference_title] - *1* [C++string 排序](https://blog.csdn.net/qq_38737992/article/details/80209914)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [C++string排序](https://blog.csdn.net/qq_50543056/article/details/117857244)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [string数组的字典序排列 C++](https://blog.csdn.net/qq_24447809/article/details/113061752)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值