- 1 名前:デフォルトの名無しさん [2009/11/22(日) 16:04:30 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.69【環境依存OK】 pc12.2ch.net/test/read.cgi/tech/1256022655/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm codepad.org/ (コンパイルもできるし出力結果も得られるのでお勧め) ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白か に置換すると見栄えだけはよくなります。
- 23 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 22:41:34 ]
- コピーされなかったら配列は永遠に初期化できないじゃないか。
char *str = "hogehoge"; ならともかく。
- 24 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 22:43:40 ]
- コンパイル時に数が決まるから strcpy() よりは早いけどな。
まあ、ループ展開しないと比較演算は必要だから同じか。
- 25 名前:20 mailto:sage [2009/11/22(日) 23:01:28 ]
- >>23
おぉ、すまんすまんw。 自分のコーディングスタイルと違うので間違っちゃったw。 char str[]="hogehoge"; ってすると、スタックに積まれてたw。 これは危険だ! なにげに勉強になっちゃったw。 では、さらばだ!
- 26 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 23:37:40 ]
- >>6
いや、数珠つなぎにしたいとかじゃなくて、無限に要素を増やしたいから、どうしたものか・・・と。 で、自分がとりあえず考えた方法があれだったっていう >>8 だなぁ・・・。 やっぱ、そうしかないのかな? とりあえず、回答ありがとう。
- 27 名前:デフォルトの名無しさん mailto:sage [2009/11/22(日) 23:50:55 ]
- >>5
遅くていいならディスク上にファイルとして配列を持ち、ガリガリやれよ 相当遅いが、1TBの配列だって持てるわけだ
- 28 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 00:02:45 ]
- *dataと*tmpを用意、*dataに大きさNの配列を動的に確保
要素数がNを超えそうなら*tmpに大きさ2Nの配列を確保して*dataの内容をコピー後ポインタをスワップ スワップ後のtmpを解放 まあただのvector実装なんだが
- 29 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 00:09:32 ]
- そも無限は無理。
- 30 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 01:51:22 ]
- >>26
だから、無制限に要素を増やそうとすると数珠繋ぎとかになるんだよ じゃなきゃ、溢れた時にでかい領域を再確保してコピーするとかな で、それらをきっちりやってくれるのがSTLコンテナだが、原理知らないで使うと えらいパフォーマンス落としたりもするから、一度自分でそれらしく書いてみても いい 理屈が理解できたら、STLコンテナを使っちゃった方が安心で軽くて楽だが
- 31 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 01:56:40 ]
- 128KBくらいのブロックをつなげろよ。
HDDのクラスタと同じようなもん。 vectorなどは、再配置するから効率悪い。 ブロックで管理すれば再配置無し。
- 32 名前:デフォルトの名無しさん mailto:sage [2009/11/23(月) 02:02:35 ]
- 実質ブロックで管理(仕様では明記してないけど)してて
それなりに高速なデータ構造となるとstd::dequeかな。 悩んだらとりあえずdequeつかっとけというのが俺の経験則。
|

|