[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/13 19:22 / Filesize : 243 KB / Number-of Response : 945
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part69



1 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 21:04:54 ]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part66
pc12.2ch.net/test/read.cgi/tech/1231640498/

※part63, part66 が重複していたようですので part69 としました。

82 名前:70 mailto:sage [2009/05/06(水) 21:06:15 ]
std::vector 使ったことないです、調べて見ます。ありがとうございます

83 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 21:08:14 ]
あとはboost::ptr_vector<AA>とか

84 名前:78 mailto:sage [2009/05/06(水) 21:10:22 ]
>>81
> こんな感じでうまくいったのですが、本当にこのままでいいのだろうかという疑問が・・・
>>78にあるとおり、良くない。
いつdeleteするかとか、newが4回あるうちのどこかで例外が発生しうるがその時はどうするかとかは?
たぶんboostないしstd::tr1のshared_ptrが必要になるのではないでしょうかね。

・・・ってstd::vector使ったこと無いのか。
じゃあまずSTLのお勉強だな。

85 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 21:14:26 ]
STLの前にポインタの勉強からじゃ

86 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 23:45:57 ]
構成上、どうしてもコンストラクタで例外を投げたいんだけど、
良いんだよね?別に。
そう言うこともあるよね?


87 名前:デフォルトの名無しさん mailto:sage [2009/05/06(水) 23:50:53 ]
某サイトで「コンストラクタで例外を投げるな」なんて書いた人がいたけど
基本的には問題ないし、コンストラクタで正常にオブジェクトの構築が出来ないときは
例外を投げるのが最も適切。

もし、気になっている問題があるなら、具体的に書いてもらってもいいけど。

88 名前:デフォルトの名無しさん [2009/05/07(木) 00:05:27 ]
>>86
全く問題ないよ。

89 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 00:13:08 ]
>>71
> (pairが)等価ベースとはどういう事でしょうか?
その元レスは直前のレスに対する独り言のようなものだろうから文面をそのまま受け取っては駄目。
おそらく以下の説明のようなことを踏まえての発言。

pairのoperator<はまずfirst同士を比較して、それが等しければsecond同士を比較するという流れ。
ここで等しければを判定するのに等値かどうかで判定するのではなく等価かどうかで判定する。

90 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 00:21:12 ]
>>86
後始末が必要なものをしっかりかたづけてればおk。

A(){
 h = gethandle(); // 後で明示的に解放する必要あり
 /* このあとに例外投げるかもしれない処理を行う */
}

~A(){
 releasehandle(h);
}

みたいな場合、例外をコンストラクタの外に投げる前に後始末が必要。



91 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 00:32:28 ]
「解放すべきもの(newで確保されたメモリや、その他のリソースなど)を保持してデストラクタで解放する」
という仕事をするためのクラスを利用すると、例外に対処しやすい。

そういうクラス自体の設計時は例外安全に注意する必要がある(コンストラクタでうかつに例外を投げてはならない)
が、そういうクラスの利用者のほうは適当に例外を投げてもリソースリークが起こらないようになる。

92 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 00:44:59 ]
日本語でおk

93 名前:91 mailto:sage [2009/05/07(木) 01:02:48 ]
>>92は俺に言ってる?

例えばスマートポインタを使う場合が最も分かりやすい。
次のようなクラス MyClass があったとする。

class MyClass {
public:
 MyClass();
 ~MyClass();
private:
 MyAnotherClass* p;
};

で、MyClass::MyClass() の内部で p = new MyAnotherClass(); などとして、
MyClass::~MyClass() で delete p; しているとする。この場合、MyClass::MyClass() が迂闊に例外を
スローすると、MyClass::~MyClass() が実行されないためにpが解放されない場合があるから、
例外をスローする場合はpの解放がきちんとされるように、注意深くコードを書かなければならない。

ただし、メンバ変数 p をポインタではなくスマートポインタとすると、そのような注意は不要となる。
例えば std::auto_ptr<MyAnotherClass> p; となっていて、MyClass::MyClass() の内部で
p(new MyAnotherClass()); とした場合、たとえMyClass::MyClass()が例外をスローしても
newされたものはちゃんと解放されるから、神経質にならなくて済む。

忘れてはならないのは、スマートポインタのコンストラクタが迂闊に例外をスローしてしまうと、
結局、リソースリークの可能性は消えないということだ。まあ自分でスマートポインタを書いて使うことは
普通の人はないと思うけど、実際 boost::shared_ptr 等はコンストラクタで例外を投げる場合があり、
その場合でもリソースリークが起こらないようにちゃんと配慮されている。

94 名前:91 mailto:sage [2009/05/07(木) 01:08:31 ]
ごめん、std::auto_ptr 使って p(new MyAnotherClass()); は無いね。
コンストラクタのメンバ初期化子に書いたと思ってくれ。

95 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 08:24:20 ]
>>91
「そういうクラス」「そういうクラスの利用者」って何?

「そういうクラスの利用者『のほう』」って何と比べてるの?

96 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 10:34:03 ]
>>95
文脈から明らかでないか?



97 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 11:10:34 ]
明らかじゃないから聞いてるんだろ。
明らかだと思うなら、どう明らかか書けばいい。

98 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 11:16:18 ]
例えば、>>93>>91の説明であるならば、
>>93に登場するクラスのどれが、「そういうクラス」に相当するのか?

99 名前:11 mailto:sage [2009/05/07(木) 11:35:51 ]
>>89
等値(equality)
a == b
等価(equivalence)
!(a < b) && !(b < a)
これの事ですね。
ありがとうございました。

100 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 11:36:10 ]
>>98
std::auto_ptr とか boost::shared_ptr とかが「そういうクラス」。



101 名前:100 mailto:sage [2009/05/07(木) 11:37:50 ]
まあクラスじゃなくてクラステンプレートか。
std::auto_ptr<MyAnotherClass> とかが「そういうクラス」だと思ってもらえれば。

102 名前:86 mailto:sage [2009/05/07(木) 11:51:26 ]
>>87-101
サンクス。
でかいクラスじゃなく、リソース漏れも起こすことはないハズのコーディングにしてあるので
大丈夫だ。どうも!

103 名前:デフォルトの名無しさん mailto:sage [2009/05/07(木) 15:40:22 ]
>>101
thx


104 名前:デフォルトの名無しさん [2009/05/09(土) 16:12:48 ]
std::vector< std::pair< key_t, value_t > > v;
for( std::vector< std::pair< key_t, value_t > >::iterator i = i.begin();....

というコードがあるとして、for文の「std::vector< std::pair< key_t, value_t > >」のように
長いテンプレート型書く必要が多々あり、それが面倒に感じます。
「v.self_type」のような、変数名から型を引っ張ってくるような
仕組みは出来ないものでしょうか?

105 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:15:39 ]
typedef すれば?

106 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:22:02 ]
次期規格でdecltypeというのが出来るが今は無理

107 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:25:10 ]
typedef しとけ

108 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 16:32:54 ]
>>105-107
承知しました。
ありがとうございました。

109 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:09:32 ]
decltype よりゃ auto じゃね

110 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:10:34 ]
>>107
だからC++03ではtypmlateのtypedefは無理だっつーに



111 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:11:17 ]
×typmlate
○template

112 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:16:55 ]
>>110
部分特殊化のような形の typedef は無理だが
>>104 みたいなのは全く問題ないっつーか、常套手段だろ

113 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:17:48 ]
>>110
パラメータが確定してるテンプレートクラスならできるぞ
できないのはtypedefのテンプレート

114 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:17:57 ]
>>110
・・・まさかやったこと無いわけじゃないよな?

115 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:21:48 ]
typedef typename std::vector< std::pair< key_t, value_t > > hoge;

通りませんでしたよ^^
VC2008

116 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:30:40 ]
typename要らない

117 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 17:55:02 ]
釣り臭いな

118 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 18:03:04 ]
>>115
using alias使うんだよ
using hoge = std::vector< std::pair< key_t, value_t > >;

119 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 18:19:02 ]
素だろ
また的外れてるし。

120 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 18:48:32 ]
>通りませんでしたよ^^
これは釣りだろ



121 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 23:06:38 ]
VC++の学習用にサブPCを導入しようと思うのですが、
atom330でも問題なさそうでしょうか
あまりに重そうならE1400辺りで自作しようと思います

122 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 23:46:34 ]
別に問題ないだろ
IDE使いたいなら話は別だが

123 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:12:43 ]
>>121
全く問題ないよ。
IDE使ったところで問題なんて起きないから大丈夫。

124 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:20:19 ]
VC++2008EE使っていますが、
変数の値を常に表示する方法はありますか?
現在はcout<<hoge;みたいなものを随所に入れています
VBにあったウォッチウィンドウみたいな奴が欲しいです・・

125 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:34:37 ]
メニューの
デバッグ|ウィンドウ|ウォッチ
デバッグ|クイックウォッチ

126 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:34:47 ]
>>124
無いわけ無い。
それともEEだと存在しないとか??

127 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:44:28 ]
>>125-126
ttp://www1.axfc.net/uploader/Img/so/45753.jpg
ないっぽいです・・
イミディエイトウィンドウならあるんですが、無料だとこんなものかもしれません

128 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:51:16 ]
>>127
メニューにはデバッグ実行中でないと出てこないはず
というか、初期状態でデバッグ実行したら下に自動変数とかローカル変数のタブ出てこない?

129 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:53:32 ]
確かに間違って閉じちゃうと探すのに苦労するね


130 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 00:55:52 ]
ああ、出てきましたありがとう!!!
コッソリタブが増えてました
こりゃ気づきませんぜ・・



131 名前:デフォルトの名無しさん [2009/05/10(日) 05:03:03 ]
>>130
いや、まぁ・・・気づくけどな。

132 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 09:21:46 ]
誰でもそりゃわかってりゃ気づくけどな。
普通はなかなか気づかないだろう。

133 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 09:26:07 ]
VC6の時代から使ってる人なら「必ずあるはずだ」って必死に探すなw

134 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 09:29:17 ]
有用なサービスほど消えることは無い、 無いよな、 しかし気がつくと、  いや、無いと言ってくれー

135 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 11:09:06 ]
メニューから消えてるだけのこともある
いくつかのショートカットキーとか

136 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:08:18 ]
動的なハッシュテーブルを作っていて、[]演算子をオーバーロードしようと考えているんですが、
代入する時と参照する時とで挙動が完全に変わってしまいます。

C#のgetメソッドやsetメソッドのような完全な書き分けってどうやるんでしたっけ。

137 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:12:27 ]
そういう書き分けは無いのでやるなら別関数にすれ
挙動が異なるなら、別の表記を取るのが一番間違いが無い

138 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:13:10 ]
書き分けは無理

proxyクラスでも使え

139 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:13:45 ]
const メンバ関数か非 const メンバ関数かという差で挙動を変える事はできるが、
それで大丈夫なものなのかは疑問だ

140 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:14:40 ]
[] の戻り値をクラスにする方法もあるけど・・・
個人的にはあまり好きではないな



141 名前:136 mailto:sage [2009/05/10(日) 17:16:05 ]
>>137-139
thx

いくらヘルプを読んでも分からないわけだ。


142 名前:136 mailto:sage [2009/05/10(日) 17:16:58 ]
>>140
やっぱそれしかないか・・・

143 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:18:27 ]
演算子のオーバーロードはあまり乱用すべきものではないので
細かい技法を使わないと演算子のオーバーロードでは実現できないような処理は
普通のメンバ関数にしてしまった方がいいと個人的には思う

144 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:48:08 ]
>代入する時と参照する時とで挙動が完全に変わってしまいます。

同じように見せたいのなら<map>みたいにすればいいと思うけど

145 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 18:00:21 ]
std::cin >> hoge;で受け取れるような自作クラスMyClassのオペレータオーバーロードはどうすればよいのですか?
std::cout << hoge;ならサンプルコードが良く見つかるのですが。。。

146 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 18:17:54 ]
同じようにすりゃ良いじゃん

147 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 18:22:19 ]
>>146
というのは、例えば
std::string str;
std::cin >> str;
としてstrから適切に処理すれば良いってことですか?


148 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 18:32:28 ]
std::complex<> を参考にしろよ

(n,m) の形式で読み取るが、どのようにして実現しているのか
考えるのも楽しいものだ

149 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 18:33:27 ]
istream &operator >>( istream&, const MyClass& );

150 名前:147 mailto:sage [2009/05/10(日) 19:52:38 ]
>>148
ありがとうございます。
さっそく見てみます。

>>149
ありがとうございます。
宣言の方は
std::ostream& operator << 〜
で理解しました。



151 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 21:46:01 ]
C++ code - 31 lines - codepad
ttp://codepad.org/YWNCgmUO
このソースはgccに付いてきた
std::complex<〜>のstd::istream& operator>>(std::istream&,complex&);のソースなのですが、
この
if (__ch == ')')
__x = complex<_Tp>(__re_x, __im_x);
else
__is.setstate(ios_base::failbit);
が何をしているのか分かりません。
自分なりに推測するとstd::istreamで読み込んでいった結果、所定のフォーマットになっていない(閉じ括弧がおかしい)場合にエラーを伝えるべくsetstateとやらをしているようなのですが、
__is.setstate(ios_base::failbit);
ってどういう意味ないし効力なのでしょうか?

152 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:00:38 ]
std::ios::failbit が立つと、それ以降の入力は一切行われなくなる
これがCとは違う所

この状態をクリアするにはis.clear()を行う

153 名前:151 mailto:sage [2009/05/10(日) 22:02:27 ]
>>152
フラグ立てですか。
読み込みに失敗したと言うことで、エラー状態にしているわけですね。
ありがとうございます。
・・・でも何で例外を投げる仕様にしなかったのでしょう?
使いづらそうな。。。

154 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:04:40 ]
C++の本ってみんな今何読んでる?

155 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:05:30 ]
今は何も読んでない

156 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:06:21 ]
>>153
例外を投げる事もできる
ただ歴史的経緯があって例外がC++に存在しなかった時代から
iostreamは使われて来ているわけでデフォルトで例外はOFFに
されている

例外を投げるにはメンバ関数exceptions()にトリガとなるビットを
セットすればよい

157 名前:153 mailto:sage [2009/05/10(日) 22:14:28 ]
>>156
なるほどー!
サンクス。了解できた。

158 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:15:39 ]
>>154
Boost C++ libraries 第二版

159 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:45:39 ]
>>154
はじめてのC。

電車の中で立ち読みして
JKやOLからの冷たい視線でたまらなく興奮する人にお勧め。

160 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 22:48:21 ]
>>154
やさしいC++
電車の中で読む度胸はないぜ



161 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:01:31 ]
配列に配列を代入したいときは、
配列1[i]=配列2[i]などとしてforで回すのが一般的でしょうか

162 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:04:14 ]
C++なら<algorithm>のcopy関数を使う方が一般的

163 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:05:59 ]
memc(ry

164 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:07:18 ]
つ std::copy
一見関数だらけになるが、恐ろしいほど最適化される。

165 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 00:09:03 ]
>>162-164
ありがとうございます
とりあえず全部試して見ます

166 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 08:04:07 ]
>>154
Programming - Principles and Practice Using C++

167 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 22:16:57 ]
std::vector<char> v(256);

で &v[0] を char 256個の配列として扱って良いものですか?

168 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 22:41:08 ]
>>167
> &v[0] を char 256個の配列として扱って良いものですか?
v[0]でvの先頭要素のリファレンスが返ってくる。
そして&v[0]はそのアドレスを取得している。
よって先頭アドレスが取得できるのか?ということかい?

たしかOKと聞いたことがあるなぁ。
C++編(標準ライブラリ) 第2章 vector
ttp://www.geocities.jp/ky_webid/cpp/library/002.html
の○生の配列との関連のところで。



169 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 23:11:26 ]
>>167
ええよ
C++98とC++03間の変更点の一つにvectorはリニアアドレス↑に
取られる事が保証されたというのがある

規格票を見れば書いてあるはず

stringはまだでc++0xで保証される予定

170 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 05:29:54 ]
GUIを考えています。
例えば、ボタンの上にマウスを持っていった時に、ヘルプメッセージを出す事を考えます。
所謂コマンドパターンによる実装になると思うのですが、
ボタンが親子関係でもないオブジェクトの参照を持つ事になり、気持ち悪く感じます。
これは気にしても仕方ない事なのでしょうか?



171 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 08:13:10 ]
仕方ないというより、別に気持ち悪くないし。

172 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 18:48:03 ]
履歴一覧を表示する元に戻すボタンでも実装するのか?

>所謂コマンドパターン
って言ってみたかっただけなんじゃ

173 名前:167 mailto:sage [2009/05/13(水) 21:17:48 ]
>>168, 169
ありがとうございます。
std::string の c_str() のようにポインタを取得するというメソッドが
無いので、もしかしてやっちゃいけないことなのかと不安に思ったのです。


174 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 21:43:46 ]
C/C++の趣味グラマなんだけど、
アセンブラも勉強した方がいいのかな?


175 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 21:47:28 ]
わざわざしなくていいと思うよ
意識せずとも、いずれ自然に必要になって自然に勉強してる

176 名前:174 mailto:sage [2009/05/13(水) 21:52:03 ]
>>175
ほほう、そんなもんなのか。ありがとう。
むしろもうちょっと高級言語も知っとこうかなぁ。。。

177 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 23:27:37 ]
C/C++をやると平気でインラインアセンブラを書くようになるよな
特にSSE2/SSE3関連は

178 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 00:48:26 ]
>>171,172
クラスの関連が複雑になるのと、オブジェクトの寿命管理の点が気になりました。

> 履歴一覧を表示する元に戻すボタンでも実装するのか?
これも1つです。
ソースの見通しが悪くなり、あとで機能を追加したいと思った時に困るのではないかと思いました。

179 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 01:13:32 ]
ササビーってIntelから出るけどあれどうなの?

180 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 01:53:25 ]
俺、趣味でオセロプログラム書いてるけど、>>177みたいなことに手を出してみた。
最初は難しいイメージがあったが、やってみるとそうでもなかった。



181 名前:デフォルトの名無しさん [2009/05/14(木) 02:25:47 ]
0から1の乱数を表示させるプログラムがほしいんですがわかる人いますか?
調べてみてはいるのですが、なかなかうまく動きません。
乱数生成のためのソフトとかはいるのでしょうか?

もしお暇がありましたらよろしくおねがいします。


182 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 02:30:59 ]
>>181
今、どれくらいの知識を持ってるの? どんなコード書いてみたの?
とりあえず、標準Cライブラリの rand っていう関数は知ってる?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<243KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef