【初心者歓迎】C/C++室 Ver.44【環境依存OK】at TECH【初心者歓迎】C/C++室 Ver.44【環境依存OK】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト9:デフォルトの名無しさん 07/11/03 04:45:39 必要なサイズをreserveで決めておけばstringはstrcatより断然速い ひとつひとつコピーするのは面倒なのでパス stringは確保した時点ではメモリは0しか確保してない 0のままでほなんども足すとかなり鈍い 10:デフォルトの名無しさん 07/11/03 05:13:48 str.reserve(100*1000*1000);はうごくのですが str.reserve(1000*1000*1000);はエラーになります プログラムでエラーを察知できますか? 11:デフォルトの名無しさん 07/11/03 05:30:23 例外。ていうか(wchar_tが2バイトの処理系だとして)2GBも確保すんの? 12:デフォルトの名無しさん 07/11/03 05:42:16 テキストファイルはせいぜい300Mくらいだろうから、最初にメモリを確保してしまおうとおもうけど 万が一数ギガのファイルを渡されたら処理しきれなくなるからエラーを返さないとと思った 13:デフォルトの名無しさん 07/11/03 05:46:37 あと、どうやらメモリ領域を拡大する命令ってcにもc++無いようだね 新規に確保してコピーするみたいだね realloc()は内部でそのようなことをやっているらしい となるとvectorでもstringでも初めに必要な領域をうまく設定することが速度にかなり影響するだろう 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch