【初心者歓迎】C/C++室 Ver.19【環境依存OK】
529 :
511:
std::stringで使ってるクラスを、CStringに変えて、CString::Find検索にしたところ、
劇的に速くなりましたw
STLって重いんですね。
ちょっとSTLのスレッドでその辺を質問してこようと思います。
530 :
デフォルトの名無しさん:2005/07/10(日) 13:09:02
Game.hでButton.hをインクルードし、Button.hでGame.hをインクルードみたいに、
お互いにインクルードみたいなことがしたいんですが、
やる方法がありましたら、教えてください。
>>530 それに未来はないのでヘッダファイルの整理を推奨します。
>>531 やっぱ、そこですかね。
方法自体も探してたんですけど、みつからなかったですし。
#ifndef〜#endifは重複対策で相互対策ではないですしね。
ありがとうございました。
>>529 std::string text =
>>529;
for(int i=0; i<1000,000; i++)
text.find("質問");
でやってみた。(BCB6#4)
std::printf.find > 4246sec
CString.Find > 2774sec
AnsiString.Pos > 1192sec
>>533 俺もやってみたけどCStringの方が遅かった。
_mbsstrを呼んでいるためのようなのでそこをどうにかしてみたけれど、
やっぱりstd::stringの方が早かった。
ATL::CString 3857ms
std::string 3069ms
(10,000,000回forで回した)
CStringは最終的に_mbsstrを呼んでいた。
std::stringは検索対象の1文字目を取り出して、それをchar_traits::findで検索し、
見つかればそこからchar_traits::compareして一致しているかで探している。
>>535 ワタシはCStringのほうが軽いです。
実行した環境は何でしょうか?
わたしはVC++6です。
537 :
デフォルトの名無しさん:2005/07/10(日) 15:31:15
5000個ぐらいのファイルを10種類の分類したいのですが
ファイルのパスを変更するやり方がわかりません。
どなたか教えてください。
超初歩的な質問で申し訳ないんだけど
オープンしたテキストファイルの途中にfprintfで書き込むことってできる?
追加ならできるんだけど・・・
540 :
535:2005/07/10(日) 15:39:47
>>536 VC++7.1だ。念のために言っておくと535のCStringはstrstrを呼ぶようにしての値だ。