| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7817 人关注过本帖
标题:如何去除空格键
只看楼主 加入收藏
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用baidu在2006-8-31 16:04:13的发言:

固执,你测试一下告诉偶结果,假如你的strchr, strncpy库函数组合能及上我的一半,偶马上跟你学C++

strchr,strncpy都是C的东东,我也写个这个实现是C的,C++的在上面。如果你觉得你写的C比库函数快告诉写C compiler的人让他们换过来我自动就用到你的了。


http://myajax95./
2006-08-31 23:23
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用aogun在2006-8-31 16:56:33的发言:
正好有点时间,写了点代码测了一下,ajax,你的程序没有我的快,在空格极少的情况下接近我的函数(在第一页)的速度,如果空格一增多,速度就和我的函数相差比较大了

快慢可能由空格数决定,也可能由中间不是空格的字符决定。这本身不是一个确定复杂度的问题呀。


http://myajax95./
2006-08-31 23:25
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-31 23:33
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用haroldi在2006-8-31 18:10:30的发言:
记得哪本书上写,任何时候都不要试图用自己写的函数去替代库函数(大意如此),
不知是否适用于大部分情况?哪位弟兄帮我理解一下.是不是不应包括如下情况:

比如:当需要调用2个甚至更多的库函数时,不如自己编写,,,这样理解对吗?还是......

能用已有的库函数的时候尽量用,当然用之前要对其试用方法,效率之类有一定了解。例如同样的算法如果在STL的container里面和algorithm里面都有,而你需要用这种container的话,就应该用这个container的算法,因为这个算法相对更具体于这种container的结构。最好还是看书领会吧,看看书上的习题是怎么写的,不要看语法解释部份的简单的用i,j之类的。最好看稍微长一点的例子,或大型一点的习题集。我现在在看的是<<C++ Programming Language>>的习题解答。书的第一页强调了这个问题。基本上像样点的书前10页都会说这个问题。具体什么时候用什么还是别看这的人怎么说了。看书按标准写法,照猫画虎练的一下就全体会了。能把<<C++ Programming Language>>的习题解答这本书全领会下来就肯定可以算C++一流高手了。


http://myajax95./
2006-08-31 23:47
haroldi
Rank: 1
等 级:新手上路
帖 子:158
专家分:0
注 册:2006-7-22
收藏
得分:0 
谢谢斑斑!!

多看坛里的讨论,能抓住学习的重点.

Do people want thick road ...
2006-09-01 01:48
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-09-01 09:18
cosmos
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-9-1
收藏
得分:0 
[CODE]#include <string>
#include <algorithm>
#include <iostream>

using namespace std;
struct Space { bool operator()(char ch) { return ch == ' '; } };

int main()
{
string a("fsai lk; 4ajg; jaogfhs ;jjf9waj ");
cout<<a<<endl;
remove_if(a.begin(), a.end(), Space());
cout<<a<<endl;
cin.get();
return 0;
}[/CODE]




2006-09-01 12:34
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 

還是穆楊的 char * shan_kongge(char *s) 快點 (個人感覺)


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-09-01 12:51
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用cosmos在2006-9-1 12:34:22的发言:
[CODE]#include <string>
#include <algorithm>
#include <iostream>

using namespace std;
struct Space { bool operator()(char ch) { return ch == ' '; } };

int main()
{
string a("fsai lk; 4ajg; jaogfhs ;jjf9waj ");
cout<<a<<endl;
remove_if(a.begin(), a.end(), Space());
cout<<a<<endl;
cin.get();
return 0;
}[/CODE]



请教一下。remove_if在连续存储的内存里删除的效率高吗?或者说string()被remove_if时是怎么具体删没个空格的。如果是list之类的肯定应该是没问题的。


http://myajax95./
2006-09-01 13:01
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用yeshirow在2006-9-1 12:51:26的发言:

還是穆楊的 char * shan_kongge(char *s) 快點 (個人感覺)

mm,说话要有根据,我这边测试的结果是牧羊的效率大概是ajax(c语言版)的1/3,也即是说ajax的速度是牧羊的3倍
,测试方法是计算占用cpu时间,字符串长度372,空格数77个,循环调用牧羊和ajax的c语言版函数5000次,ajax的函数用了32毫秒,牧羊的用了156毫秒,测试次数:6次
谁不信可以试试,不会相差太远


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-09-01 13:32
快速回复:如何去除空格键
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024649 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved