- 1 名前:デフォルトの名無しさん [2010/03/23(火) 00:57:51 ]
- スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
過去ログ スレを勃てるまでもないC/C++の質問はここで pc11.2ch.net/test/read.cgi/tech/1167476845/ スレを勃てるまでもないC/C++の質問はここで 2 pc11.2ch.net/test/read.cgi/tech/1178503366/ スレを勃てるまでもないC/C++の質問はここで 3 pc11.2ch.net/test/read.cgi/tech/1187521676/ スレを勃てるまでもないC/C++の質問はここで 4 pc11.2ch.net/test/read.cgi/tech/1221633708/ スレを勃てるまでもないC/C++の質問はここで 5 pc11.2ch.net/test/read.cgi/tech/1230516307/ スレを勃てるまでもないC/C++の質問はここで 6 pc11.2ch.net/test/read.cgi/tech/1231564903/ スレを勃てるまでもないC/C++の質問はここで 7 pc11.2ch.net/test/read.cgi/tech/1232983248/ スレを勃てるまでもないC/C++の質問はここで 8 pc12.2ch.net/test/read.cgi/tech/1235921779/ スレを勃てるまでもないC/C++の質問はここで 9 pc12.2ch.net/test/read.cgi/tech/1240022781/ スレを勃てるまでもないC/C++の質問はここで 10 pc12.2ch.net/test/read.cgi/tech/1242300936/ スレを勃てるまでもないC/C++の質問はここで 11 pc12.2ch.net/test/read.cgi/tech/1245059383/ スレを勃てるまでもないC/C++の質問はここで 12 pc12.2ch.net/test/read.cgi/tech/1248010352/ スレを勃てるまでもないC/C++の質問はここで 13 pc12.2ch.net/test/read.cgi/tech/1260842197/
- 52 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 12:43:10 ]
- >>45 誤解されがちなshared_ptrに補足
引数でshared_ptrを渡したいときは const shared_ptr<hoge>& とすればコピーのオーバーヘッドは発生しないし。 ->は参照カウントと変更しないからオーバーヘッドはないよ。 new に対するshared_ptrのコストは無視できる。 まあ、大抵のshared_ptrのコストは無視できるよ。ホントにボトルネックになったときに考えればいい。
- 53 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 16:12:35 ]
- >>52
const でもカウントアップされないと困る場合もあると思うけど。
- 54 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 18:30:37 ]
- どんなとき?
- 55 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 18:39:48 ]
- カウントしておかないと実態が解放されちゃうことがあるよ。
これが起こるはずがないというのは本末転倒。 元々その辺の管理をやらなくていいようにするための物なんだから。
- 56 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 18:47:28 ]
- const参照の参照元が掴んでるから平気じゃね。
必要に応じてコピーすればいいし
- 57 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 18:48:23 ]
- 別スレッドに渡すと死ぬる
- 58 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 18:50:01 ]
- スタック上にchar[sizeof]で確保した領域に
別の型のオブジェクトをplacement newするのは危険、と小耳に挟んだんだけど本当?
- 59 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 18:52:20 ]
- ヒープであっても危険
- 60 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 18:57:04 ]
- >>56
だからずーと掴んでおく必要がないのが shared_ptr でしょうに。
- 61 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 19:00:24 ]
- >>58
char[sizeof]を宣言してる関数から抜けたら駄目でしょう。 別に placement new だからというわけでもないと思うけど。
- 62 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 19:03:53 ]
- >>61
関数を抜けなければ大丈夫とお思い? d.hatena.ne.jp/Cryolite/20051102
- 63 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 19:10:12 ]
- >>61
オブジェクトのメンバにchar[sizeof]で確保されたメンバがあって、オブジェクト自体が自動変数だった場合を想定してます。 >>62 それを呼んでもどういう場合が危険でどう回避すればいいか解らないあたりc++に対する理解度が低いのかなと・・・
- 64 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 19:14:43 ]
- >>62
それは処理系から来る制限であり、元の仕様とは関係ない。 問題のある処理系ではそのようなコードを書かないのは当たり前のこと。 逆にメモリ管理を上書きしたいんだから、その辺のことを考慮するのは当然だろ。
- 65 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 19:18:46 ]
- >>63
>危険でどう回避すればいいか解らないあたりc++に対する理解度が低いのかなと・・・ わからない人が使うものではないと思いますが、使う理由は何ですか?
- 66 名前:デフォルトの名無しさん mailto:sage [2010/03/24(水) 20:19:29 ]
- >>64
話がずれてるだろお前
- 67 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 09:41:55 ]
- char name[MAX_PATH] = "";
nameを\0で、埋め尽くしたい場合にどう記述すれば良いのでしょう。
- 68 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 10:06:16 ]
- その書き方で全部'\0'で埋まってないか?
- 69 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 10:19:54 ]
- >>67
最初だけで良いなら static を付けて宣言する それか memset(name, '\0', MAX_PATH); で毎回クリアするとか
- 70 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 10:21:25 ]
- >>67
char name[MAX_PATH] = {'/0'};
- 71 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 10:22:05 ]
- 訂正
/0じゃなくて\0ね。
- 72 名前:67 mailto:sage [2010/03/25(木) 10:41:55 ]
- 初期宣言時 char name[MAX_PATH] = {'\0'};
変数クリア時 memset(name, '\0', MAX_PATH); 解決しました、ありがとうございます。
- 73 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:26:32 ]
- Modern C++ Designにpointeeって出てきたんですけどこれって何者なんですか?pointerの誤植じゃないですよね?
- 74 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:43:36 ]
- employ 【動】雇用する
employer 【名】雇用主 employee 【名】従業員 とか言うのと同じ
- 75 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:48:29 ]
- ポインタが示す先ってこと?
- 76 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:51:42 ]
- int pointee;
int *pointer = &pointee;
- 77 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:55:01 ]
- >>72
memset(name, '\0', sizeof name); の方がよくない?
- 78 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 14:58:42 ]
- マクロ定数で決まってる配列のサイズを、sizeofにわざわざ変える必要はない。
- 79 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 15:46:16 ]
- メッセージを表示させて時間が来たら消します
i= MessageBox(hwnd, Message, Title, MB_OK); Set timer 時間経過→ SendMessage(?,WM_KEYDOWN,VK_RETURN,0); Killtimer SendMessageでMessageBoxにエンター入力して表示を消すつもりです。 WM_KEYDOWNにVK_RETURNを送るとエンターの入力になりますよね? また、MessageBoxのハンドルをどうやって所得すればよいのか解りません。
- 80 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 15:48:39 ]
- スレチ
- 81 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 15:54:32 ]
- >>79
MessageBox 使わず、自分で CreateDialog すればいいじゃん。 SendMessage は控えよう!
- 82 名前:79 mailto:sage [2010/03/25(木) 16:18:07 ]
- API向けのスレでした…すみません。
CreateDialogも調べてみます。
- 83 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 16:47:35 ]
- >>74,76
thxです
- 84 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 21:32:49 ]
- カンマ区切りの文字列sがあったとして
foo(strtok(s, ","), strtok(NULL, ","), strtok(NULL, ",")); なんて呼び出しをしたいんだけど、strtok は第一引数の場所から 順番に呼び出されるって保証がありますか?
- 85 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 21:34:34 ]
- 無い
- 86 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 21:34:40 ]
- ない
- 87 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 21:36:03 ]
- ない
実際の実装ではむしろ逆から呼ばれる傾向にある (後ろの引数からスタックに詰むため) これも必ずそうというわけではないが
- 88 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 21:40:22 ]
- >>85-87
面倒でもいったん変数に取り出す必要があるんですね。 どうもです。
- 89 名前:デフォルトの名無しさん mailto:sage [2010/03/25(木) 23:37:22 ]
- fopen("1.txt",fp)後に while (fgets(s, 256, fp) != NULL) {Line++}で行数を読み込みます。
Lineが100あり、30行目の内容を読み込みたい時ですが、 int a=30,Line=0; while (fgets(s, 256, fp) != NULL) { Line++ if(Line=a) 適当な関数(s); } 上の記述だと1〜30まで繰り返しますが、ダイレクトに30行目を読み込む方法ってあります? for()
- 90 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 00:30:22 ]
- 1行の長さが不定なら前から見ていくしかないよ
- 91 名前:デフォルトの名無しさん [2010/03/26(金) 02:40:50 ]
- BOOLEAN BOOL boolean bool
どれ使えばいいの?(´;ω;`)
- 92 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 03:06:31 ]
- BOOLかbool
- 93 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 06:25:42 ]
- ありがとう
- 94 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 10:41:27 ]
- >>89
そのソースだと全行で関数が呼び出されるぜw
- 95 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 10:45:48 ]
- algorithmのstd::remove()について質問です。
std::vector<int> v; v.push_back(0); v.push_back(1); v.push_back(2); std::remove(v.begin(), v.end(), 0); std::remove(v.begin(), v.end(), 1); printf("%d", v.size()); 上記のようにすると、最後のvのサイズは1を期待するのですが3のままです。 でも、v[0]には本来の0ではなく2が入っています。 v[1]もv[2]も2が入っています。 std::remove()の代わりにvector::erase()を使用すれば、 v.size()は1を返します。 std::remove()はそういうモノなのでしょうか? VC2008で確認しています。
- 96 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 10:55:20 ]
- >>95
そうです 期待通りの動作をさせるには v.erase(std::remove(v.begin(), v.end(), std::compose2( std::logical_or<bool>(), std::bind2nd(std::equal_to<int>, 0), std::bind2nd(std::equal_to<int>, 1))) とする必要があります
- 97 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 10:57:09 ]
- あ、ごめん
v.erase(std::remove(v.begin(), v.end(), std::compose2( std::logical_or<bool>(), std::bind2nd(std::equal_to<int>, 0), std::bind2nd(std::equal_to<int>, 1)), v.end()) だった removeは残す要素の候補を前に集めるだけで、実際の削除は しませんのでstd::eraseもしくはメンバ関数eraseを使います
- 98 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 11:18:20 ]
- >>97
erase 使うのならそんな面倒なことせず remove を erase に置き換えれば良いだけだと思うけど。
- 99 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 11:56:46 ]
- v.erase(std::remove(v.begin(), v.end(), 0), v.end());
v.erase(std::remove(v.begin(), v.end(), 1), v.end()); これでいいね removeは第三引数にリファレンスを取るのでlogical_orが使えないな
- 100 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 12:00:18 ]
- 使うとしたらremove_ifとboost::bindを組み合わせるかだ
- 101 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 12:05:16 ]
- やっと動いた
これは読みにくいわ(^ω^;) v.erase( std::remove_if(v.begin(), v.end(), boost::bind( std::logical_or<bool>(), boost::bind(std::equal_to<int>(), _1, 0), boost::bind(std::equal_to<int>(), _1, 1) ) ), v.end());
- 102 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 12:08:36 ]
- ちなみにboost::bindを使ったのは、標準C++にはstd::compose2が無いためです
- 103 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 15:02:28 ]
- 質問は
>std::remove()はそういうモノなのでしょうか? であって、そういう汚いコードに興味はありません。
- 104 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 16:54:30 ]
- boost使ったからまだ綺麗なんだぞ
もっと汚いコードは山ほど書いてきた
- 105 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 17:12:19 ]
- >>104
だから、コード書いてくれなんて誰も頼んでないつーの。 オナニーはよそでやってくれ
- 106 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 17:23:03 ]
- ときどき void main って書くやついるよね。
なんなんだろうね。馬鹿じゃないかと思うよね。
- 107 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 17:28:36 ]
- まともな事には答えられないからって、同じ話題をループさせようとすんなよw
- 108 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 17:46:36 ]
- オブジェクト(インスタンス)を生成するときに変数をポインタにするのとしない場合が
ある理由を教えてくださいませませ Unko* unko_kusai Chinko chinko_1
- 109 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 17:51:11 ]
- >>108
生成パターンを使うと大抵ポインタにならないか? それから仮想関数で使う場合もポインタにしなければならない
- 110 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 18:04:49 ]
- 別に参照でもいいよ
- 111 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 18:06:33 ]
- >>108
変数にすると、生存期間をコントロールできない。 ポインタなら自由にコントールできる。 けど自由な分手間もかかるし、プログラマが責任を持つ必要がでてくる。
- 112 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 18:08:00 ]
- >110
仮想関数の場合な 使う場面は限られるけど 生成パターンでもシングルトンだと参照の場合もあるし
- 113 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 18:16:56 ]
- Hoge hoge;
{ HogeBase &h = hoge; h.vfunc(); } ポインタじゃなくてもvtable参照してくれますよ
- 114 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 20:12:27 ]
- >>113
知ってるから わざわざ書かなくてよろしい
- 115 名前:108 mailto:sage [2010/03/26(金) 23:44:05 ]
- レスありがとうございます
今勉強してるサンプルプログラムでポインタあ・なしの両方が出てきて、何故に使い 分けてるのか疑問だったのですが、一方は複雑なことやる必要があるからポインタ、 もう一方はその必要が無いなら安全なポインタ無し という風に使い分けてるという解釈で おkですかね?
- 116 名前:デフォルトの名無しさん mailto:sage [2010/03/26(金) 23:46:46 ]
- >>115
自動で済ませられるなら自動に任せるって琴田
- 117 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 00:57:48 ]
- >>99
初回のremove()の結果を二回目のremove()の第二引き数とすればerase()は一回でいいんじゃね? >>101 だとすればわざわざそんなややこしいbind()するメリットもないんじゃね?
- 118 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 01:46:00 ]
- >>115
メモリリークするバグを潰すのは大変だ。と前置きをした上で。 ポインタにしなかった場合、その変数のスコープから抜けるときに 変数の後始末を自動でやってくれる。つまりメモリリークの心配がない。 これは色々処理をする途中で、エラーが発生したら中断、みたいな処理をするときにはとても楽。 ポインタを使った場合、中断するときにnewしたオブジェクトを正しく全てdeleteしないと メモリリークになるのでよく注意する必要がある。 一方で、>>109の言うようにオブジェクトの生存期間を自分で管理したい場合や、 継承を使ったオブジェクトを使いたい場合、 もしくは大きなオブジェクト(大きな配列など)はポインタを使う必要がある。 C++であれば、ポインタでありながら、メモリリークの心配がいらないスマートポインタという 仕組みがよく使われる。(boost::shared_ptrなど) これを使うと普通のポインタよりも実行速度がやや遅くなるが、普通は気にするほどではない。
- 119 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 01:54:03 ]
- 速度気にならなければ、動的メモリ確保をすべて乗っ取って
ガベージコレクションした方が良い。 ヘッダ変更だけで済む
- 120 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 01:55:54 ]
- はじめからnewを使わないという戦略もある
STLをうまく使えば、スマートポインタ、ガベージコレクション、new はほとんどいらんだろう。
- 121 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 05:50:38 ]
- >>117
>初回のremove()の結果を二回目のremove()の第二引き数とすればerase()は一回でいいんじゃね? アホ removeの戻り値は削除候補の先頭だ 前に集められた候補の中に次に削除したい値が含まれているので その方法はダメ >だとすればわざわざそんなややこしいbind()するメリットもないんじゃね? だったらお前が何か書いて見せろや 口だけ出して何もしない奴が一番嫌いだな
- 122 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 08:34:09 ]
- >>121
間抜けで頓馬で馬鹿と来ちゃ、どうしようもないな。 ・間抜け 削除候補が集められるのは前じゃなくて後ろだよ。 つまり、「後ろに集められた削除候補の先頭」が戻されるって訳。 ・頓馬 自分で確認すれば間違いに気付けたのにそれさえしないんだからな。 ・馬鹿 その上、何か書いて見せろって自分が書けもしないのによく言うよ。 馬脚を現わした挙句に自ら墓穴を掘ったわけだ。
- 123 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 08:43:16 ]
- >>122
間抜けのアホはお前だ >削除候補が集められるのは前じゃなくて後ろだよ。 >つまり、「後ろに集められた削除候補の先頭」が戻されるって訳。 そんなもん常識だろ >>121のどこにこれを否定するような文が書いてある? >>117の通りにしたら1が削除されずに残ってしまうだろ 実行して試してみ それとも図星を突かれて悔しくてファビョったのか?
- 124 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 08:52:48 ]
- 二人とも言い合いせずに特に>>122はプログラム例を書いて示せ
お前さんの言いたい事はこういう事だろ? std::vector<int> v; v.push_back(0); v.push_back(1); v.push_back(2); v.erase(std::remove(v.begin(), std::remove(v.begin(), v.end(), 0), 1), v.end()); std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " ")); std::cout << std::endl; std::printf("%d", v.size());
- 125 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 09:35:13 ]
- >前に集められた候補の中に
- 126 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 09:38:05 ]
- >>125
合ってるじゃないか 前に集められた「削除から外される」候補の中にと文脈からは取れるだろ >前に集められた候補の中に次に削除したい値が含まれているので これをよく読め
- 127 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 09:39:47 ]
- 要するに>>122はイチャモン付けて喧嘩したいだけなんだよ
相手が誰であろうと構わないわけだ だったら痛くも痒くもないネット内でのビビリ喧嘩などせずに 街に出てDQNに喧嘩吹っ掛けてボコボコに殴られてこい
- 128 名前:122 mailto:sage [2010/03/27(土) 09:51:16 ]
- んじゃ、>123のために私の書いたのを貼っておく。
まぁ、>124と核は同じだね。 -- #include <algorithm> #include <cstdio> #include <vector> int main() { std::vector<int> v; v.push_back(0); v.push_back(1); v.push_back(2); for (int ic = 0; ic < 10; ++ic) { v.push_back(ic % 5); } v.erase(std::remove(v.begin(), std::remove(v.begin(), v.end(), 0), 1), v .end()); for (std::vector<int>::const_iterator it = v.begin(); it != v.end(); ++i t) { printf("%d\n", * it); } return 0; } -- それはさて。 >>>121のどこにこれを否定するような文が書いてある? >121には「前に集められた候補」とあるんだけどな。 まぁ、「削除候補とは書いてない」と言い出すだろうからまぁいいや。
- 129 名前:122 mailto:sage [2010/03/27(土) 09:59:35 ]
- うぉっ、80カラムでぶった切れているから難癖つけられる前に問題の行だけ再掲。
-- v.erase(std::remove(v.begin(), std::remove(v.begin(), v.end(), 0), 1), v.end()); for (std::vector<int>::const_iterator it = v.begin(); it != v.end(); ++it) { -- つーか、書いている間に予想通りのレスがついてて笑えた。 無茶しやがって……
- 130 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 10:00:31 ]
- >>128
>>126 お前の目はフシアナだ
- 131 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 10:44:25 ]
- >>126
>removeの戻り値は削除候補の先頭だ >前に集められた候補の中に次に削除したい値が含まれているので 一行前に削除候補って書いてあるのに、次の行の候補が「削除から外される」候補と 読むのはかなり無理がある
- 132 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 10:48:56 ]
- >>131
お前の頭が悪いからだ その分だとプログラムもバグだらけだろう
- 133 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:00:02 ]
- >>132
いい加減見苦しい。 説明が下手か勘違いしていたのかは詳らかではないが、 そもそも>117で巧くいくことははっきりしている。 他人を嫌う前に、ご自身の言動を見直してみては如何?
- 134 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:03:36 ]
- >>133
見苦しいのはお前の方 こちらの説明が間違ってないのに間違って言い張るお前は馬鹿
- 135 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:08:20 ]
- >>120
STLをうまく使うにはスマポは必須だけどね。 スマポでもshared_ptrならmake_sharedを使えばnewもいらず例外安全性も確保されるようになるし。 STL+shared_ptrでnewもガベコレもいらなくなるね。
- 136 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:11:45 ]
- >>117はせっかっく良いことをいったのに、挑発レスを受け流せずに台無しだ。
- 137 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:13:16 ]
- >>117は単純馬鹿だからな
この分だと仕事場でも>>117は同僚とぶつかってばかりだろう
- 138 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:18:35 ]
- >>121
> その方法はダメ 見苦しい弁解まだ〜w
- 139 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:31:30 ]
- 的外れな突っ込みをするバカが一番悪いだろw
- 140 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 11:33:44 ]
- >>99
これで単純明快なのにケチを付ける奴が一番悪い
- 141 名前:115 mailto:sage [2010/03/27(土) 12:05:39 ]
- 皆様詳しいレスありがとうございました。
色々まだ自分の知らないワードが出てきたのでググって勉強しますぉ。
- 142 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 21:51:58 ]
- SetTimerでタイムアウト後、タイマのプロシージャの中でKillTimerしても良いんでしょうか?
プロシージャ外じゃないと駄目なんて事は
- 143 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 22:13:10 ]
- >>142
なんのSetTimer? Win32ならWin32スレで聞くと詳しいぞ
- 144 名前:142 mailto:sage [2010/03/27(土) 22:21:24 ]
- SetTimerはWin32でした、すみません。
- 145 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 23:14:51 ]
- gnuplotでリアルタイム解析をするクラスを作りたいんだけど参考になるものなにかありますか?
- 146 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 23:16:26 ]
- なんのリアルタイムかわからん
アクセス解析か
- 147 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 23:22:33 ]
- 物理の数値計算です
3次元での粒子の位置などを見ます
- 148 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 23:37:52 ]
- gnuplotは表示ツールであって解析ソフトではないと思うが。
一応「gnuplot C++」あたりでググればそれっぽいページは出てくるな。 だが、もう少し本当にやりたいことは何なのか考えてみた方がいいと思う
- 149 名前:デフォルトの名無しさん mailto:sage [2010/03/27(土) 23:49:26 ]
- >>147
解析を行いたいのか、解析データはあるからプロットだけしたいのか?による。
- 150 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 00:13:05 ]
- パイプ開いてコマンドを出力すればリアルタイムに描画してくれるよ
ただ糞遅いから結局のところ違う描画ライブラリ使うことになるだろうけど
- 151 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 01:02:21 ]
- >>149
後者です >>150 別にいいのがあるならどんなのがあるか教えてもらえるとありがたいです
- 152 名前:デフォルトの名無しさん mailto:sage [2010/03/28(日) 01:11:06 ]
- home.f08.itscom.net/okuya8/nnodysimulation.pdf
ここの5.8章みたいなことがしたいということです 説明下手ですいません
|

|