请教一个C/C++问题?

  • 主题发起人 主题发起人 QHHY
  • 开始时间 开始时间

QHHY

知名会员
注册
2002-09-03
消息
54
荣誉分数
0
声望点数
116
不知用什末做容易?

====

有一文件2000多行。每行是一个全路径的原码文件名。

用程序找(算法另说)。每个原码文件名对应不定个数的编译文件。每个编译文件对应不定个数的执行文件。每个执行文件对应不定个数的包文件。

输出找到的每个原码文件所对应的编译文件,及相应的执行文件,包文件。 

====

原来用的TCL。 但太慢,老板叫提速,只好用C/C++.但C知道只有LINKEDLIST。不知用C++是不是更好。可以用vector string 之类的吗?

请高手赐教。多谢。
 
读一行处理一个,找到一个输出一个,为啥要用linklist?再说了,处理速度慢大概是因为文件操作,看不出C/C++能快到哪去
 
Thank you. It seems can be solved by using C++ vector string and multimap but not sure how efficient they are. The total string number is not known. I do not like to do memory allocation but if using those library , I wonder if they will make execution slower than pure C.
 
速度慢主要是因大量文件读取,可参靠c++,好像是真(没找到这个字)读写,你可以找到sample code.我是很久以前试过,现只是大概有印象。不过如用c++解决文件读写速度,确实可以提速。仅供参考。
 
Thank you. It seems can be solved by using C++ vector string and multimap but not sure how efficient they are. The total string number is not known. I do not like to do memory allocation but if using those library , I wonder if they will make execution slower than pure C.

你不想预先memory allocation,我个人觉得只能在内存里头生成一个跟文件一样大小的block,把文件内容复制到内存里头

纪录每行字符的起始pointer,一个字节一个字节的读过去,寻找换行符或者\00

字符搜索能有多快就看你的算法了。

然后你把所有得到的pointer放入linked list/vector都可以
创造自己的vector class也可以

得到所有文件名的collection以后,怎么map你需要的执行文件跟包文件就得看你自己的需要了

-----------

或者,well
string s;
while( getline(cin,s,'\n') ) {
//foobar.....
}
 
后退
顶部