1 名前:858 [2007/12/24(月) 03:41:59 ] C++標準ライブラリの一つ、STLについて。 前スレ 【C++】STL(Standard Template Library)相談室 7 pc11.2ch.net/test/read.cgi/tech/1185986999/ 過去ログ・リンク・書籍紹介は >>2 以降
461 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 03:47:21 ] utf-8で? アニメの中国語のfansubとか見るとかなが入った日本語と 漢字ばっかりの中国語で文字数そんなに変わらんように見えたけど。 だから画数で言えば中国語は不利。
462 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 04:43:57 ] 一文字に線をたくさん詰め込むんだから、字数が少なくならないとおかしい。 ような気もする。
463 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 06:14:49 ] >>455 ゲーム機はメインメモリ領域が結構キツイんでないの
464 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 06:33:10 ] >>440 嘘過ぎる
465 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 06:40:30 ] さすがに>>440 は釣りじゃないのか
466 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 06:41:36 ] >>462 ちょうどいいのがなかったけど、これとか jp.youtube.com/watch?v=BdXniHjh2WM
467 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 07:28:09 ] 詩とか台詞の翻訳はちょっと特殊じゃないか? ってどこへ行こうとしてるんだこのスレは
468 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 15:13:48 ] 標準STLではunicodeをちゃんと扱えるんでしょうか? 処理系依存では(例えばVC++とか)扱えそうですけど。
469 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:35:57 ] ちゃんと扱う、の定義次第。 wstring, wchar_t を問題なく扱えればOKなのか?それなら問題ないよ。 ロカール処理やエンコーディング変換のための十分なサポートがあるか?それなりしかない。
470 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:06:41 ] >>455 コンテナ(というかアロケータ)のメモリ効率は重要だと思うが。 アラインメントやページ境界にかなり気をつかっているらしい。 演算効率についてはちょっと読みきれていないが... inline展開とか命令キャッシュ効率とか、分岐予測の弱いプロセッサのこととか、 いろいろ書いてある。 でかいボトルネックは取り除いた上でさらにどうがんばるかって話では。 >>463 "Game platform memory metrics"ってところに主要なゲーム機のspecが書いてある。
471 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:17:44 ] EAがやたらマルチプラットフォームでゲームを作れるのは この辺がしっかりしてるからかな まぁ無理だろうけど、一部位公開してほしいな
472 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:48:57 ] VC9でライブラリを作ろうとするとえらーがでます。 使えないですか?
473 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:53:57 ] 主語を書け。
474 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:12:34 ] むちゃぶりだな
475 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:50:00 ] バージョンは5.1.5です。
476 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:43:11 ] わたし にほんご わかりません
477 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:59:02 ] ベンチャーキャピタルが図書館の設立に失敗?
478 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 15:09:31 ] STLportじゃないの
479 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:03:42 ] マルチスレッドにてqueueを使いたいのですが、 STL等にセマフォを任せることは出来ないでしょうか?
480 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:06:11 ] 基本的にSTLはスレッドセーフではない。
481 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:31:30 ] >>479 いまどきの実装であれば、たいていドキュメントにマルチスレッドについて書かれている。 そういう記述が無いとか、書かれた保証では不十分だとか、広い移植性が必要だとか、 ドキュメントを読むのがメンドイとか言うんなら自分でなんとかするしかない。
482 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:06:11 ] std::stringの配列の連続性は保障されてないそうですが、 実際配列が連続じゃない実装をしてる環境ってあるんですか?
483 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:10:37 ] 配列じゃないよ
484 名前:479 mailto:sage [2008/01/31(木) 18:50:24 ] >>480-481 ありがとうございました。 無い事が分かって安心しました。 必死で作って、既に有ったらかなり凹むのでw(勉強にはなるけど) WinAPIのCreateSemaphore()かmutexで検討したいと思います。
485 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:52:11 ] まあ実際はc_str()の動作を速くするために連続の場合が多いけどな。 しかもヌルターミネータ文字まで入ってたり。
486 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:54:51 ] >>482 ない。というか、次期の規格(C++0x)で連続性が保証されるようになる。 N2461) 21.3.1 basic_string general requirements [string.require] 3 The char-like objects in a basic_string object shall be stored contiguously. That is, for any basic_string object s, the identity &*(s.begin() + n) == &*s.begin() + n shall hold for all values of n such that 0 <= n < s.size().
487 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:58:43 ] std::ropeは標準じゃないけど、初めから切れ切れの文字列を つなぎ合わせる事を想定してるな。
488 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:01:32 ] だからstd::ropeにはメンバ関数c_str()がない。
489 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:02:47 ] でもSTLportのstd::ropeにはc_str()があったりする。変なの。
490 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:04:03 ] 標準じゃないのに std を使うのは違和感あるよな。
491 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:06:10 ] STLportはSGI-STLに妙なこだわりを持ってるよな。 何か言われてんのかな。
492 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:13:41 ] > 基本的にSTLはスレッドセーフではない 例えばどんな場合?
493 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:15:33 ] >>492 どんな場合って・・・何するにしてもスレッドセーフを要求する 仕様なんてないはずだけども。
494 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:17:02 ] STLportはスレッドセーフだったような
495 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:21:14 ] うーん、書いてないとスレッドセーフでないってのも・・ beginthread一回でも呼ぶプロセスではstlは一行も使えないってことに なりそうな。 たぶん皆、同一インスタンスに複数スレッドでアクセスしなければ平気 くらいな解釈で使ってるんだよね
496 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:41:35 ] 標準にスレッドセーフという概念がないから語っても意味ないだろ
497 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:19:44 ] スレッドの概念自体が無い
498 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:26:59 ] ちっ、また自己責任かよ。つかえねーな
499 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:30:23 ] 効率のためにintの幅すら決めない言語に向かって何を言ってるのかね
500 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:39:35 ] int幅が実装依存なのはちゃんと作ってれば別に問題ないだろ。
501 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:41:25 ] 原子力発電所も冷凍餃子もちゃんと作ってれば別に問題無いぞ。
502 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:41:37 ] AMD64は自然な長さが64ビットなのにintが32ビットだな
503 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:48:23 ] intが64bitな処理系は現存するのか? その場合、32bitを示す型は何だろう?
504 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:52:06 ] C言語が設計された時期が古いので64ビットとか考えてなかったんだろ
505 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:52:21 ] >>503 ILP64 でググれ。
506 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:09:02 ] 32bitといったらlongなんじゃないのか
507 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:16:41 ] >506 まさか、int 64bitでlong 32bitと言ってる?
508 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:17:56 ] ねたにまじ(ry
509 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:24:17 ] LP64のほうが素直だねやっぱり。 I16/LP32はDOSで経験があるし(w
510 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:25:16 ] もうビット数気にする処理には stdint.h 使えばいいということで。
511 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:29:14 ] _int64とかタイプしたくないよヽ(`Д´)ノウワァァァン 4G超えのファイルなんかザラだろうが。
512 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:31:19 ] typedef すれば?
513 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:34:47 ] typedef _int64 long long ってできねーだろ
514 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:37:09 ] え?
515 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:37:34 ] long long とか名前長くしてどうするよ。
516 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:42:24 ] long long は既にあるべよ。long_long_long とかにしようべ。
517 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:44:20 ] >>515 C99にあるんですよlong long。 >>516 そうします。
518 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:47:19 ] long long ago むかーしむかし、あるところに長い長いアゴの男がおりましたとさ
519 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:50:58 ] _int64とはVC++くさいが、 VC++ .NET 2003からはlong longも使えるぞ。
520 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:51:20 ] 中学の英語の授業中誰もが経験するであろうネタだな
521 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:53:43 ] >>516 別に知っとるが、_int64 の方が短くて分かりやすくていいじゃン
522 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:55:01 ] i8 u8 i16 u16 i32 u32 i64 u64 これでtypedefしとけば字数的にはint未満だ。何かとぶつかりそうだけどな。
523 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:55:52 ] そこで名前空間ですよ。
524 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:55:54 ] 以下(8bitのみ未満)の間違い。
525 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:56:53 ] my_primitive_type::u64 なげーよ。
526 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:59:03 ] だから、自分のプログラム全体を特定の名前空間内に入れて、 そこで i8 とか定義しとけば何も付けなくて大丈夫。
527 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:14:27 ] stdintはC++の標準に入ったんだっけか intN_tな連中。
528 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:18:41 ] _tてなんかの略?
529 名前:デフォルトの名無しさん [2008/02/01(金) 02:30:24 ] type
530 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:47:05 ] >>527 最新のドラフトに cstdint と stdint.h が載ってた。次の改訂 (C++0x) で入るみたいだね。
531 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 06:38:05 ] C++0xはC99の(ほぼ)上位互換になるんですか それともC99で使えてもC++0xではサポートされない機能もあり?
532 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 07:22:07 ] コンパウンドリテラルとか 配列個数に変数使うとか そういうのは C++0x で無視
533 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 07:24:48 ] restricted ポインタとか色々無視されてる。
534 名前:デフォルトの名無しさん [2008/02/01(金) 07:54:32 ] 「配列の要素数に変数」はSTLと相性悪すぎだからな。
535 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 08:29:10 ] >>534 kwsk
536 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 09:01:10 ] コンパイル時に型が決まらない、だっけ?
537 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 13:51:10 ] type* v = new type[n]; ... delete[] v; の糖衣構文にしてくれるだけでいいのに。
538 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:33:28 ] stlportsは2008には使えないの?
539 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:49:23 ] >>538 STLPort はインストーラ(make)が VS2008 にまだ対応していない。 手動でインストールするなら可能らしい。STLport VS2008 でググレ。俺はまだ試していないので、試したら結果を教えてくれ。
540 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 17:54:00 ] >>538 iostream使うとC2487がいっぱい出るよ
541 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:14:05 ] っ _STLP_STATIC_CONST_INIT_BUG
542 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 01:05:39 ] >>537 std::vector で何が不満なのさ?
543 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 01:06:58 ] 見た目が汚い
544 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 01:09:31 ] はぁ?
545 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 01:21:27 ] std::vector<double> v(i); と double v[i]; なら下の方が綺麗だろう。 2次元配列とかなるともうキモいったらありゃしない。
546 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 03:43:09 ] エェー
547 名前:デフォルトの名無しさん [2008/02/02(土) 04:00:52 ] valarray使えや
548 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 07:03:42 ] [i] はキモいだろ。どんだけ使い込んでるんだよ。 (i) これは正常。むしろ性情。
549 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 07:29:17 ] 少し、頭冷やそうか
550 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 08:16:48 ] (O) < くぱぁ ╋ /\
551 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 11:50:57 ] >>548 FORTRAN か BASIC ばっかつかってるからそうなるんだ。
552 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:08:05 ] >>546 は double v[i][j]; より std::vector< std::vector<double> > v(i, std::vector<double>(j)); や std::vector< std::vector<double> > v(i); std::for_each(v.begin(), v.end(), std::bind2nd(std::mem_fun_ref(&std::vector<double>::resize), j)); の方が美しいと感じるようだ。
553 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:21:14 ] どうしても知識をひけらかしたい奴がいるようだ。
554 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:29:59 ] 馬鹿か? typedefしろよ
555 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:30:33 ] あんまりしょうもないtypedefたくさん作らないで欲しいお…
556 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:35:53 ] グローバルスコープでないならまだ許せる
557 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:50:03 ] typedef vector<int> vector_int; typedef vector<double> vector_double; … こんなのがtypedefs.hに延々ならんでるソースを見せられたときは会社やめようかと思った。 結局1年しか勤めなかったけど・・
558 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:15:32 ] >>557 なにがあかんねん
559 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:17:39 ] >>558 いみないやん
560 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:18:26 ] まぁ普通意味を考えて命名するよな #define VALUE_100 100 て定義する様なもの
561 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 14:29:30 ] >>557 そのレベルだと好みが分かれそうだなあ vector<string> string_list とかはありがちだけど。intとはな。。