【C++】算法中的基本语法

本文探讨了C++中的算法应用,包括按特定字符分割String、使用sort进行vector、自定义结构体和正则表达式的排序,以及数组复制。此外,还介绍了STL的set、vector和map的使用技巧,如判断set元素、覆盖插入和删除操作,以及文件数据读取和memset初始化。
摘要由CSDN通过智能技术生成

一、按照特定字符分割String

一个例子

string s = "(plus,+)";
char buf[20];
strcpy(buf, s.c_str());
char delims[] = ",";//可以是数组
char *result = NULL;

result = strtok( buf, delims );
string res(result);
res = res.substr(1);//从下标为1开始到末端

调用strtok 需要先将string用strcpy 转换字符数组,调用函数后,再转换成string。

二、sort排序

2.1 对vector排序

sort(s.begin(), s.end(), greater<int>());//降序,记得有括号
sort(s.begin(), s.end());//升序(默认)
sort(s.begin()+l, s.begin()+r);//从下标为l开始,r-1结束,对该子区间排序

2.2 自定义结构体排序

主要表达式为:sort(vector.begin(),vector.end(),[](const auto &a,const auto &b)->bool{return ....});

typedef struct node{
   
    int id;
    int task;
}node;

//首先以task从小到大排序,当task相同,再以id从小到大排序
bool cmp(const node &</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值