一些语言方面的技巧
2014-11-27 18:44
267 查看
1.数字转string
2.字符串转数字
3.结构体内嵌比较函数的规则
如下:
此时左边那个r表示自己这个r,如果排序的话,会按r值从小到大排序,因为sort默认就是从小到大的。
而优先队列就不同了,优先队列中默认是大值优先,所以大小关系相反,比如下面这个:
那么这个优先队列是按price小的优先出队。
总之记住:结构体中直接写比较函数一定是左边那个裸的r表示当前this值,如果r<a.r,那么就是从小到大排序,而优先队列恰恰相反 就行了。
4.排序vector结构体最好内嵌比较函数
比如内嵌:
时 sort(v.begin(),v.end()) 比 sort(v.begin(),v.end(),cmp) 快。 而且是超时的点。 注意!
int x; string id; stringstream ss; ss << x; ss >> id;
2.字符串转数字
int num; string s; stringstream ss(s); ss>>num;
char str[]; sscanf( str, "%d", &num ); // 将字符串转换成整数 sscanf( str, "%f", &floatnum ); // 将字符串转换成浮点数
char str[]; floatnum = atof(str); // 字符串转浮点数 num = atoi(str); // 字符串转整数
若字符串为string类型,则要用c_str()方法获取其字符串指针 string str; floatnum = atof(str.c_str()); // string转浮点数 num = atoi(str.c_str()); // string转整数
3.结构体内嵌比较函数的规则
如下:
struct node { int l,r; bool operator <(const node &a)const{ return r < a.r; } };
此时左边那个r表示自己这个r,如果排序的话,会按r值从小到大排序,因为sort默认就是从小到大的。
而优先队列就不同了,优先队列中默认是大值优先,所以大小关系相反,比如下面这个:
struct SELL { int price,num; bool operator <(const SELL &a)const { return price>a.price; } }; priority_queue<SELL> que;
那么这个优先队列是按price小的优先出队。
总之记住:结构体中直接写比较函数一定是左边那个裸的r表示当前this值,如果r<a.r,那么就是从小到大排序,而优先队列恰恰相反 就行了。
4.排序vector结构体最好内嵌比较函数
比如内嵌:
bool operator<(const node &B)const { return r<B.r; }
时 sort(v.begin(),v.end()) 比 sort(v.begin(),v.end(),cmp) 快。 而且是超时的点。 注意!
相关文章推荐
- 一些语言方面的技巧
- c#开发方面sql以及javascript的一些技巧
- 一些MySQL优化方面的技巧
- 一个大四学生的面试经历和一些程序员方面的技巧(转)
- Go游戏服务器开发的一些思考(二十三):Go语言Log库封装技巧
- 碰到的一些笔试题C语言方面
- Go语言 goroutine一些常用技巧
- 总结了一些MySQL优化方面的技巧
- oralce查询效率提升方面的一些技巧信息(数据库优化非常重要标签)
- 一些与.net方面结合使用的JavaScript使用技巧,
- C/C++语言的一些技巧(1)
- 一些英文写作的语言技巧总结[zz]
- smarty缓存操作方面的一些技巧
- 一些英文写作的语言技巧总结
- 跨语言站点搜索中word breaker相关的一些知识和技巧
- java语言中解决一些安全问题的技巧(安全编程非常重要标签)
- 实战技巧:python语言的一些爬虫技巧!
- 一些有意思的面试题(持续更新) .C语言编程技巧札记
- 以下一些使用ASP.NET和VISUAL STUDIO.NET2003的经验和技巧
- Jasperreport的一些使用技巧