1 名前:デフォルトの名無しさん [2009/01/11(日) 11:21:38 ] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part65 pc11.2ch.net/test/read.cgi/tech/1230341243/
285 名前:デフォルトの名無しさん [2009/03/31(火) 02:45:50 ] すみませんが、 >>273 >>274 お願いします。
286 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 02:58:04 ] >>285 少なくともVC++8で試してみたらコンパイルは通って動作も期待通りだった。 C++の言語仕様として保証されているものかどうかは知らん。
287 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 03:44:39 ] >>273 挙げられた例では未初期化のオブジェクトを参照しているので、 副作用完了点に関わらず、値が不定となる。つまり int i = i; と同じ。 ちなみに、初期化子および初期化宣言を区切るカンマではそれぞれで 「完全式」が区切られるので、副作用完了点となる。 ただし並べられたそれらの順番について C++ 2003 では規格に記述がなかったので、 次期改定で記述順に評価されることが決まる予定。 www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#430 なお、同じく次期改定で追加される initializer list については、・・・アレ、 評価順についての記述が見当たらない。大丈夫なんだろうか?
288 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 06:18:52 ] C++かCでデータ構造関係のアルゴリズムが詳細に 掲載されている本というとどんなのがありますかね?
289 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:09:06 ] >>287 ありがとうございます。 リンク先は非常に参考になりました。 すみませんが、依然 >>274 がわかりません。 おわかりでないでしょうか? > 挙げられた例では未初期化のオブジェクトを参照しているので、 これに >>274 も含まれていたりしますか? 英語版wikipediaでは、 > At the end of an initializer; for example, after the evaluation of 5 in the declaration int a = 5;. とありますが、 an initializer がどういう単位か分かりません。 MSDNでは、 > The end of a full initialization expression, such as the end of an initialization in a declaration statement. とありますが、a full initialization expression が、 int a=5, b=a*10, *c=&a, &d=a; のa,b,c,d それぞれなのか、この文全体なのかわかりません。 よろしくお願いします。
290 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:32:20 ] std::stack<std::string> s; とした場合、 s.push(〜)はsの中に〜のコピーが出来る仕様でしょうか? つまり std::stack<std::string> s; std::string *p=new std::string; s.push(*p); delete p; としたとしても、スタックsは何の影響もなくs.top()とかしていいんでしょうか?
291 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:44:03 ] 多分だめじゃよ、とーまんこー。 コンテナは値セマンティクスを要求するから 値として振舞わないものは入れられないのじゃ。 入れるならしぇあぽを入れなされ。 そして、そのプログラムは「依頼人のいない弁護士」を 保持することになる。
292 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:46:58 ] >>290 stackにpushした時点でstringがstack内にコピーされるから問題ない。
293 名前:191 mailto:sage [2009/03/31(火) 21:57:27 ] あぁ、ほんとだpushの引数に * が付いてた^^ すまんこ学園。つまり>>292 が正解。
294 名前:290 mailto:sage [2009/03/31(火) 22:19:18 ] >>291-293 なるほど。 ありがとうございました。 これで安心して組めます。
295 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 22:30:08 ] すまんこ・・・
296 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 23:45:05 ] トライ木ってどんな木なのでしょうか? データ構造がいまいちわかりません
297 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 00:09:25 ] >>296 ↓ ttp://ja.wikipedia.org/wiki/%E3%83%88%E3%83%A9%E3%82%A4%E6%9C%A8
298 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 00:12:16 ] たとえばABC,ADE,ABDの三要素のトライ木を書くとこんなかんじ A-B-C | |-D | |-D-E 左端のAが木のトップで右側が子要素な。 親から末端ノードまでの要素を連結すると登録した要素になる。 ツリーの深さはキー長に比例するけど1回辺りの比較が超軽いのが特徴。 これを改良したのにパトリシア木とかあるけど詳細は略
299 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 00:23:02 ] >>298 データ構造をどう表現していいの? ノード毎にオブジェクト作るとかアホな データ構造しか作れそうにないんだけど 意味あるのですかね?
300 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 00:42:58 ] N木使えばいいやん
301 名前:デフォルトの名無しさん [2009/04/01(水) 00:47:31 ] ノード毎にオブジェクト作っていいんじゃないの。
302 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 01:19:15 ] そういや昔 map<string, map<string, map<string, map<string, string> > > > みたいなの扱ったことあったなぁ、デバッグしててわけわかんなくなったりしたけどw これもトライ木と言え・・・ないか。
303 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 01:21:12 ] >>302 発狂しそうだw
304 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 02:59:01 ] >>299 利点としては多数のキーが格納されてるときに、 一般的な二分木と比べてキーの探索が速いのと、メモリの無駄が少ない事 ただ、キーが文字列みたいに分解可能であることを要求するから データの制約は2分木よりあるからトライ木って結構使いどころを選ぶんだよなー
305 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 03:10:28 ] トライと聞いてスクールウォーズを思い出した。
306 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 04:12:12 ] >>289 int a = 5; ↑この宣言において、 "initializer" (初期化子)は "= 5" の部分。 あとはわかるよね? MSDN の "full initialization expression" は規格中に現れる用語では ないのではっきりしないけど、おそらく上記の宣言における 5 に対応するもの だろうと考えられる。
307 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 04:15:18 ] >>289 英語が読めるんなら規格のドラフトを読んだほうがいいかもね。 ただし「シーケンスポイント」というものは次期規格からはなくなってしまうようだ。 スレッド関連を規格化するための影響みたい。 "A finer-grained alternative to sequence points" www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html
308 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 08:10:13 ] >>306 わかりました。 有難うございます。 >>307 規格書は結構高かった気がするので.... そのうち手に入れます。
309 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 08:26:55 ] >>308 > 規格書は結構高かった気がするので.... いや、だからダウンロードできるドラフトを読めば、って話なんでしょ。 買うといってるのを止めるわけじゃないけど。
310 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 18:42:08 ] 規格書いくらだっけ?7万くらいだっけ 昔興味本位で買おうとしたけどあまりにもバカ高くてやめた覚えがある
311 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:07:36 ] つーかJISの規格書って、なんでまたあんなに高価なの? JISって営利目的の機関なの? 勝手に幻滅する俺がいる。
312 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:11:04 ] 甘い汁をすすってる奴らがいるってことだろう
313 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 19:25:05 ] 嫌なら買わなくてもいい
314 名前:デフォルトの名無しさん [2009/04/01(水) 19:44:34 ] Cなどの規格はともかく、全国で数百冊しか売れない本ばかりだから内容もふくめて高いのは当然
315 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:03:22 ] 俺は別にC++で生計立ててるわけじゃないから買わない。 俺も甘い汁をすする側になりたいものだ。
316 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:04:34 ] うんこした後にさ、ティッシュに血が付いてると、 この世の終わりみたいな気分になるよね。 JISの規格書が高いのもそのせい。
317 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:15:01 ] >>316 生々しいな 俺まだ血が付いてたことはないんだけど。。。
318 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 21:24:24 ] 俺はもう慣れたけどな。 拭く前からわかるんだよね、硬さで。
319 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:02:25 ] いそいで拡張作業または増強作業にもどるんや
320 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:13:05 ] ツリーの圧縮って どうゆうアルゴリズムあるのLZ法とか 今でも使うの?
321 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:27:56 ] "ツリーの圧縮"の検索結果 12 件中 1 - 12 件目 (0.22 秒) >>320 流れから細部を省略しているのかもしれないけど どれのことかわからん
322 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:42:35 ] >>319 それよりはラッパーを噛ませた方がいいぞ 穴が開いてしまうのはプログラマとしては許せんだろうが、これが実にいい ttp://item.rakuten.co.jp/popcute/sx-md-32901--33001/
323 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 22:57:11 ] >>322 うちの職場にいる!! そんな感じの使ってる人!! 俺の脳内ではワッシャと呼んでいる。
324 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:27:35 ] 15くらいからケツ拭いたら必ず血がついてるわ 別に普通じゃね?
325 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:28:05 ] おまる?
326 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:30:14 ] いつのまにかG++相談室になってる
327 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:36:25 ] >>326 どういうこと? (俺が空気読めなくて)意図を察せないんだが。
328 名前:317 mailto:sage [2009/04/01(水) 23:42:49 ] >>324 俺、今23だけど大丈夫なんだが・・・。
329 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 23:43:21 ] >>327 おまえにはがっかりだ
330 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 00:22:44 ] マクドの硬い椅子で膝組んだり色々涙ぐましい回避策取ってる女とか ちょっとかわいそうに思うよ G
331 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 01:04:39 ] トイレの水が赤く染まったときはさすがにやばいかもと思った 穴あきクッションって効くのかな?
332 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 01:14:48 ] >>331 脅すつもりはないが、あまりに量が多いようなら内臓由来の可能性もあるから 一度診てもらったほうがいいぞ。
333 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 01:18:06 ] >>310 さすがにそんなに高くない JISは17,000円 ISOは380スイスフラン = 3万円くらい? 一応同じ内容の本をamazonから比較的安く購入することもできる www.amazon.com/dp/0470846747/ 18ドルで買えるPDFがどこかにあった気がするが忘れた 1998年の規格でよければ最終草案をタダで見れる www.kuzbass.ru/docs/isocpp/ 2003年の規格との差分はTC1としてまとめられてる www.open-std.org/JTC1/sc22/wg21/docs/lwg-status.html G++な方々はボラギノール塗って整腸剤飲んで水分多めに取ると治りやすい 治らなかったら病院へ
334 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 01:27:56 ] 甘い汁って、すするものなの?
335 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 01:32:35 ] www.google.co.jp/search?q=%22%8A%C3%82%A2%8F%60%82%F0%82%B7%82%B7%82%E9%22 www.google.co.jp/search?q=%22%8A%C3%82%A2%8F%60%82%F0%8Bz%82%A4%22
336 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 02:17:54 ] >>334 慣用表現としてなら吸うものかな
337 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 02:37:13 ] 下半身から滴る赤いしるをじゅるりスレ
338 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 02:38:29 ] 案件でJava使ってサイトつくるよって言われて, JBossとJSPとJava/CGIどれ選べば星界?
339 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 02:47:55 ] C++/CGIが正解
340 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 02:47:56 ] >>333 ドラフトなら 1998 年よりあとのやつは全部タダで見れるぜ。 www.open-std.org/JTC1/sc22/wg21/ から .pdf でダウンロードできる。 ちなみに今の最新は n2857 。
341 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 03:46:11 ] >>287 int i = i; は、値が不定じゃなくて未定義動作。
342 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 08:01:00 ] >>340 最新のは規格書の代替にならないんじゃ?
343 名前:340 mailto:sage [2009/04/02(木) 09:22:07 ] >>342 現行規格の代替なら 2003 年の直前のやつをダウンロードすればいい、 と思ったんだけど、あんまり古いのは無いみたいだった。 340 は嘘ね。ごめん。 ダウンロードできるいちばん古いのは 2004 年の N1577 だった。 途中で公開の方針が変わったのかな?
344 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:21:31 ] 私はJISのサイトで2003年の規格の日本語訳が無料で読めるんでそれだけで十分ですが 英語の規格書を読みたい人ばっかなんですよね?
345 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:31:28 ] 日本語でいいです。
346 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:38:59 ] 検索できないし改頁潰れてるしときどき訳間違ってるし脚注抜けてるし JISなんていりません
347 名前:デフォルトの名無しさん [2009/04/02(木) 21:42:18 ] 検索できないのは板杉だな
348 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:43:08 ] 私検索できるPDFもってるけど。
349 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:52:04 ] >>348 それってダウンロードすると白く塗りつぶされるんでしょ。
350 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:58:02 ] >>349 うん。 でもクラック済み。 検索も印刷も普通にできるよ。
351 名前:デフォルトの名無しさん [2009/04/02(木) 22:20:03 ] 昔はクラックなんかせずとも正規購入できたのに
352 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:25:25 ] 今のJISのサイトのは検索できるよ ただし日本語とアラビア数字に限る。アルファベットは不可。何でこうなったんだろうね… おれはJISのでもいいと思うけど、URLが決まらないのでこういうところで紹介するには不向きだと思う テンプレに手順を書いてくれればいいんだけどね
353 名前:デフォルトの名無しさん mailto:hage [2009/04/02(木) 22:25:26 ] 実際に、ライブラリレベルじゃなくて、アプリKションレベルのものを書くとき、 mediatorパターンみたいな感じになっちゃって、 mediatorに相当するクラスのヘッダを、他のクラスから必ずincludeするような設計になっちゃったんだけど、 これって間違ってる? C++の話題とはズレてごめんね>禿
354 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:30:52 ] 検索できないってどういうこと? 私はLinux用のアクロバットリーダーのバージョン8を使っていますが検索機能付いてます。 JISの文書自体は文字単位で範囲選択できるので検索できない理由がわからないのですが?
355 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:33:35 ] JISのPDFは本文の文字の一部が画像になってる
356 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:46:44 ] どこですか?
357 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:48:12 ] いやいや、少し前のは全ページ画像だった。その代わりダウンロードしても見られたけど。
358 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:55:06 ] どういうこと?ってここで言われてもなぁ…JISに言ってくれよJISに
359 名前:デフォルトの名無しさん [2009/04/02(木) 23:00:37 ] > ※最新バージョン9の使用は今しばらくお待ちください。 オマエ、ソレハナイダロウ
360 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 23:35:07 ] >>359 俺もそれ思ったwwww えええええええ!?!?ってオモタ
361 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 23:53:54 ] 今日は肛門疾患の話はないのか、寂しいな。
362 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 22:20:49 ] 痔には乙痔湯! 喪前らも、服用しる
363 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:41:54 ] memchrと strchrって何が違うの? 長さが既知だとすると性能一緒?
364 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:43:52 ] >>363 memchrの方が速いと思われ。
365 名前:デフォルトの名無しさん [2009/04/04(土) 00:47:26 ] >>285 309 :動け動けウゴウゴ2ちゃんねる :09/03/30 23:16 ID:SGwSF7rQ おねがいします。 【板名】 プログラム技術 【スレ名】C++相談室 part66 【スレのURL】pc12.2ch.net/test/read.cgi/tech/1231640498/ 【名前欄】 【メール欄】 【本文】↓ すみませんが、
366 名前:デフォルトの名無しさん [2009/04/04(土) 00:54:00 ] >>363 NULLで止まらないか止まるか
367 名前:デフォルトの名無しさん [2009/04/04(土) 00:54:07 ] 286 :動け動けウゴウゴ2ちゃんねる :09/03/30 20:26 ID:SGwSF7rQ おねがいします。 【板名】 プログラム技術 【スレ名】C++相談室 part66 【スレのURL】pc12.2ch.net/test/read.cgi/tech/1231640498/ 【名前欄】 【メール欄】 【本文】↓ あと、同じ型で複数の変数を定義する時のコンマは副作用完了点でしょうか? たとえば、以下のコードは正しく動きますか?
368 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:58:31 ] >>366 '\0' と NULL をごっちゃにするな。
369 名前:デフォルトの名無しさん [2009/04/04(土) 01:06:43 ] イヒヒ
370 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:11:04 ] null character
371 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:16:09 ] >>366 速度的にはどうなんですかね?
372 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:29:43 ] strchar 一文字単位で文字列終了文字判定 memchar カウンタがアップの判定だけ どんなコードに落ちるかはCPUのアーキテクチャ次第
373 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:32:54 ] >>363 速度は実測が基本。
374 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 12:00:41 ] >>371 全く変わらない。
375 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 13:33:02 ] 少なくともmemchrがstrchrより遅くなることはないから 出来る限りmemchrを使う 基本的にmem○○とstr○○は常にmem○○優先
376 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 13:39:43 ] いいえ。
377 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 13:48:56 ] memchrの方が2倍ぐらい遅いよ
378 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:04:58 ] >>377 根拠、或いは計測条件の提示を宜しく。
379 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:27:00 ] 二倍なんてもんじゃないよ
380 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 17:16:31 ] FreeBSD 7.1-STABLE、Celeron 700MHz(i386) で計測したらstrchrよりmemchrのほうが5パーセントほど 遅いという結果になりました。 どちらの関数もアセンブリ言語で書かれてあります。
381 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 19:10:53 ] std::string str="hoge"; const char * const p = str.c_str(); こういう使い方ってして良いの? このケースではまあ最初からp="hoge"とすれば良いことになるけどもね。
382 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 19:13:10 ] c_strは使ってはいけない
383 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 19:13:33 ] >>382 str.c_str()がだめってこと? どうして?
384 名前:381 mailto:sage [2009/04/04(土) 19:17:19 ] std::string str="hoge"; const char * const p = str.c_str(); str="piyopiyo"; const char * const q = str.c_str(); std::cout << reinterpret_cast<unsigned long>(p) << "\n" << reinterpret_cast<unsigned long>(q) << std::endl; 結果:pとqが違う値。 このようにstrが変わった時にpが無効になってる可能性はあるよね。 あるサンプルソースで似たようなコードがあって疑問だった。
385 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 19:17:31 ] >>382 はバカ。