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


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

スレを勃てるまでもないC/C++の質問はここで 15



1 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 10:31:46 ]
スレを勃てるまでもない低俗な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/
スレを勃てるまでもないC/C++の質問はここで 14
pc12.2ch.net/test/read.cgi/tech/1269273471/

596 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:46:41 ]
O(N)⇒一回の走査だけど、
一回の走査⇒O(N)じゃないからね。
一回の走査したあと他に何かする場合もあるからね。


597 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:48:01 ]
>>596
別の配列に移してソートするんですね。

598 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:48:43 ]
>>597
その通りです。

599 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:51:18 ]
>>596
>一回の走査⇒O(N)じゃないからね。

え?

600 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:52:39 ]
一回の走査をするアルゴリズムの略にきまってるだろ。

601 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 12:55:00 ]
>>598
意味ねえーーー

602 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 13:28:59 ]
だからソートしたらOが変わるって

603 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 13:57:55 ]
listでさ
あらかじめある程度の領域確保しといて、足りなくなったら適当な所から取って使う
みたいなこと出来ない?
placement new+仮想メモリ みたいな

604 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 14:05:16 ]
>>603
そういうアロケーターを書いてあるそのままに作ればいいと思うよ



605 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 14:37:17 ]
>>603
listにはそのためにアロケーターを指定できるようになっている。
boostにすぐ使えるpoolアロケータが用意されているからそれを使うのが楽
こんな感じ
list<hoge,boost::fast_pool_alocator<hoge>> a;

606 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 15:24:26 ]
>>596
二回の走査でもO(N)
従って
> O(N)⇒一回の走査だけど、
は間違い。

607 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 15:46:54 ]
>>605
まじで! ありがとう、使ってみる

608 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 15:48:31 ]
綴りミスってた fast_pool_allocatorだな。

609 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 15:55:34 ]
Boostのアロケータか
使ってみたけどあまり変わらんぞ
はっきり言ってあまり期待しない方がよい
標準のアロケータで通常は十分

610 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 16:05:22 ]
そもそも標準で十分だと思ってるヤツ向けの機能じゃないし。

611 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 16:07:08 ]
boostって実際使って仕事してる?
規約で禁止されてるところとか多そう。

612 名前:デフォルトの名無しさん [2010/06/12(土) 16:09:06 ]
必要があれば使うけど、基本的には使わない。

613 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 16:29:53 ]
>>609
意外と標準のnewは速いから大きな差はないな。差がないのはアロケータはスレッドセーフにする必要があるのが要因のようだね。
プールアロケータのメリットはたくさんのオブジェクトを作成、破棄を繰り返すときにヒープの断片化を防ぐ。これはnewの速度低下に地味に効いてくる。
あと、オブジェクトの生成破棄再生成を繰り返すときの高速化ぐらいだね

614 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 16:54:36 ]
二つ以上のクラスで同じ関数使いまわしたいんだけど何かいい方法ない?

class CA {
void hoge();
}
class CB {
void hoge();
}
void CA::CB::hoge() {
}
こんなイメージ(勿論上はエラー)
まあ二回書けばいいんだけど、中身が数十行あるからうざったい



615 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 16:57:30 ]
>>614
継承

616 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 17:05:11 ]
テンプレート関数でできそうな飢餓。

617 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 17:11:33 ]
普通に
class Choge {
void hoge();
}
class CA:public Choge {
}
class CB:public Choge {
}
void Choge::hoge() {
}
これでいけるか
合ってるよね?

618 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 17:12:19 ]
is-a に出来ないんだったら絶対にpublic継承は使うなよ
場合によっちゃprivate継承が適切なケースもあるが
なるべくならコンポジションだ

619 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 17:20:35 ]
もうちょっとわかりやすく!


620 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 17:21:21 ]
>>617
そのhoge()はなんでメンバ関数なんだ? そこをよく考えて設計するべき。

621 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 17:33:14 ]
>>617
あってるよ。それでいい。

622 名前:614 mailto:sage [2010/06/12(土) 17:55:09 ]
ありがとうございました!

623 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 19:06:49 ]
std::istringstreamからstd::getline()やらread()やらでデータを取得していって、
さぁ残りの文字列を取得しようとstr()を呼んだら最初の初期化で指定したものが出てきました。
現在の読み込み位置以降の文字列を取得するスマートな方法は無いですか?

624 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 19:21:49 ]
>>623
istreambuf_iteratorでもなんでもいいけど、
istringstreamから残り全部の文字を読み出すようなコードを書くのが手っ取り早いと思う。



625 名前:623 mailto:sage [2010/06/12(土) 20:11:54 ]
>>624
どうもありがとうございます。大当たりです。

std::string str( ( std::istreambuf_iterator<char>(istr) ), std::istreambuf_iterator<char>() );

で期待した動作になりました。

626 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 10:22:26 ]
c++の学習のためにゲームを作っているのですが、コードを書くごとにどんどんグローバル変数が増えていって困っています。
呼び出し関係のない2つの関数で共通する変数を扱う為にグローバル変数を使う、というパターンがほとんどなのですが、
こういう場合にグローバル変数をなるべく使わないで済ます方法はないでしょうか?

たとえばカーソルを動かして選択肢を選ぶ処理を作るために、
「キーボードの入力を受け取ってカーソルの位置情報を動かす」関数と「位置情報からカーソルを描画する」関数があり、
カーソルの位置情報をグローバル変数にするという感じです。(上記の関数はどちらもゲームのメインループから呼び出しています)

627 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 10:28:05 ]
>>626
「カーソル位置情報を動かす」オブジェクトが「カーソルを描画する」オブジェクトを参照できるようにしておく。

628 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 10:33:57 ]
>>626
オブジェクトうんぬんじゃなくて、ただの構造化プログラミング的には

キーボードの入力を引数にとり、カーソルの位置情報を返す関数
位置情報を引数にとり、カーソルを描画する関数
キーボードの入力を受け取って上記二つを呼び出す関数

に分けるとか
そういう風にするだけでも、関数内でそれなりに完結するようになって大分良くなるんじゃないかな

629 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 10:34:08 ]
カーソル位置情報を関数に参照渡しすれば?

630 名前:626 mailto:sage [2010/06/13(日) 10:44:34 ]
ご回答ありがとうございます。
実は学習のしかたが偏っていたせいか、今まで参照がどんなものなのか知りませんでした。
今参考書をあたりつつ、関数の分け方も考えています。

631 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 11:20:34 ]
listがremove()使ったほうがいいって言われるのはなんで?
一個だけ削除するにもremove使ったほうがいいの?

632 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 12:22:43 ]
>>631
どこに書いてあった?

633 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 12:23:52 ]
普通の関数のremoveよりメンバ関数のremove使った方がいいって話と勘違いしてるとか?

634 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:47:08 ]
www.geocities.jp/ky_webid/cpp/library/003.html

>erase() はイテレータを使い、指定された要素を削除します。ただし、list の場合は要素の削除には、 remove() の方を使うべきです。
>remove() は、指定した値を持つ全ての要素を削除します。remove_if() は、削除する要素の条件を指定できるものですが、この辺りは使い方が難しいので説明を省きます。



635 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:06:42 ]
?removeは機能も違うし置き換えにはらんだろう。しかもO(N)じゃないのか?

636 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 17:42:48 ]
>>634
そこ間違いが多いから参考にしないほうがいいよ

637 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 01:03:17 ]
高橋麻奈著の『やさしいC』を読み終えファイル入出力までは理解できた
次は何すればいい?C以外の言語を学んだ方が良い?

638 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 06:42:49 ]
次は自分で考える事を勉強する、かな

639 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 11:46:43 ]
>>637
書け。


640 名前:デフォルトの名無しさん mailto:void main() (笑) [2010/06/14(月) 13:13:06 ]
>>637
pc12.2ch.net/test/read.cgi/tech/1274827528/

641 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 13:31:03 ]
ソースファイル落としたら.mの拡張子のファイルも入ってて良くわからないです
明日までにとりあえず動作させなければいけないんで
使い方だけ簡潔に教えていただければ助かります

642 名前:デフォルトの名無しさん mailto:void main() (笑) [2010/06/14(月) 13:39:29 ]
m4 かなあ?

643 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 13:45:10 ]
mファイルと言うらしいのですが、matlabは触ったことがないので全然分からないのです…
特別なコンパイラとかいるのでしょうか?

644 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 13:46:38 ]
matlabが必要になります。



645 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 16:14:58 ]
オーバーフローアンダーフローを検出してくれる整数演算のライブラリってなんかありますか?

646 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 17:54:08 ]
.mってObjective-Cじゃないんかね


647 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 18:39:43 ]
>>645
SafeInt

648 名前:デフォルトの名無しさん [2010/06/14(月) 23:13:49 ]
初期化子でポインタは初期化できないのですか?

649 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 23:15:07 ]
初期化出来るでしょ

650 名前:デフォルトの名無しさん mailto:sage [2010/06/14(月) 23:24:35 ]
MATLAB なら Octave が free soft。

651 名前:デフォルトの名無しさん [2010/06/14(月) 23:55:01 ]
int i;
sscanf(str, "%d", &i);

これでstrにiを超える桁数の数が入ってたら
適当に丸めてくれるの?
それとも桁あふれになるの?

652 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:29:53 ]
struct Rec {
int type; /* 0なら四角、1なら丸*/
int yoko; /* 幅*/
int tate; /* 高さ*/
};

struct Cir {
int type; /* 0なら四角、1なら丸*/
int r; /* 半径*/
};

struct Zukei {
int type; /* 0なら四角、1なら丸*/
};


void RecCreate(void* hoge){
(Rec*)hoge->type=0;
(Rec*)hoge->yoko=10;
(Rec*)hoge->tate=5;
}

void CirCreate(void* hoge){
(Rec*)hoge->type=0;
(Rec*)hoge->r=7;
}

653 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:31:35 ]
PrintMen(void* hoge){
switch((zukei*)hoge->type)
case 0:
sprintf("%d",(Rec*)hoge->yoko * (Rec*)hoge->tate);
case 1:
sprintf("%d",(Cir*)hoge->r * (Cir*)hoge->r * 3.14);
}

main{
zukei* x;
RecCreate(x);
(間にいろんな処理)
PrintMen(x);
}

先輩の作ったモジュール見たらこんな感じのコード出てきたんですが
CreateTri抜ける〜PrintMen行くまでにyoko、tateの情報落ちないんでしょうか?
zukeiへのポインタとしてしかxを宣言してない
(mainモジュール中でzukei構造体分のサイズしかメモリ確保してない?)んで
yoko、tateの値が入った領域って(間にいろんな処理)の際に
別の変数の為に使われちゃったりしないか気になるんですが。

654 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:39:29 ]
>>653
すごい良くないコードだね。
危惧しているとおりに、違う型で上書きしなければ動くだろうけど。間違いを防止することができない良くないコードだね。



655 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:39:33 ]
ひでぇコードだな

656 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:44:36 ]
C++で仮想関数にすればまだ見られるようになりそうだが

657 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:52:37 ]
回覧板の角で頭ぶっ叩くレベル

658 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 19:53:30 ]
Cでクラス・継承を実装するのは結構めんどくさいよね

659 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:00:39 ]
>>658
各構造体をunionするしかないか。コンパイラのチェックが効かないから相当危険なコードになるのは間違いないが。

660 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:03:53 ]
Cなら普通にある。キミらが使っているネットワークスタックも同様に書かれている。

661 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:08:53 ]
>>660
IPのアドレス構造体なんかそうだけど。
type値で切り替えるのは有るけど普通じゃないと思う。APIなどのインターフェースとかぐらいだろ

662 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:20:29 ]
xの先はどこで確保されているんだろう。
常識的に考えればRecCreate()で確保するのが関の山だと思うが。

663 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:41:46 ]
>>652はLが無いけど、TLVな構造なんてどこでも使われてるだろ。

664 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:55:24 ]
型をコンパイラがチェックできなくなるんでお勧めできない方法だ



665 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:57:17 ]
すみません。ポインタの変数の値が壊れる事に悩んでいます。
struct DATABOX { int no; bool chk; float *data_a, *data_b; }
この構造体のインスタンス
DATABOX dbox[100]; が有るのですが、

私がまだ理解できていないテンプレートを使った移植クラスの利用の為に
DATABOX* tmp = spDAry[i]->mpObj; // 右の式がテンプレートらしく理解が・・
ここに
tmp->data_a = dbox[i].data_a;
とすると正常通過する時と、dbox[i].data_a側が 0.000000 になってしまう時が有ります。
(デバッグで手前では数値が確実に入っています。必ず0.000000以外の数値で確認済みです。)

ここ以外 dbox[100] を触っている部分は全く無い処理に入ってから壊れるので
ここしか考えられないのです。
ポインタの扱いに慣れておらず、
イコールして右の式が壊れるなんて初めてで、混乱しております。
申し訳ないですが、何がまずそうかできれば推測で構いませんので、助言頂けませんでしょうか


666 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:59:41 ]
>>665
おそらくテンプレートは関係ない。
先ずは周辺のソースを全部出せ。

667 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 21:02:33 ]
spDAry[i] の i が spDAry のサイズを超えてるんじゃないの?
んで、tmp が変な所指してしまってて、dbox か i かの中身を壊してるとか

668 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 21:55:23 ]
>>664
お勧めの方法提示してから否定しろよ。

669 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 21:57:34 ]
C++を使うのがおすすめですよ

670 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 21:58:12 ]
型をちゃんと指定するのがおすすめですよ

671 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:12:43 ]
OpenCVもCで継承使ってる部分はvoid *だな
C++だと問題ないんだが

672 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:14:56 ]
>>668
C++で継承を使うのがお勧めだろう。
今回の例だと
class Zukei
{
public:
virtual ~Zukri(){}
virtual void PrintMen()=0;
};
class Rec :public Zukei
{
int type; /* 0なら四角、1なら丸*/
int yoko; /* 幅*/
int tate; /* 高さ*/
public:
virtual void PrintMen(){//略}
};
class Cir :public Zukei

class Rect :public Zukei


673 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:15:01 ]
他言語から使う以外に手間をかけてまでわざわざCでやるメリットは有るのか?

674 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:15:52 ]
>>672
typeは要らなかったな。こぴぺミスった



675 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:30:14 ]
>>673
新規案件ならC++だろう。
既存コード使うならCを使わざるを得ないだろうけど

676 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:41:59 ]
InitTest::InitTest(QString *p)
: m_str(QString("abc")),
m_pstr(new QString("abc"))

こんな初期化子の使い方ありだと思いますか?

677 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:48:17 ]
pはどこに行ったの?

678 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 22:53:33 ]
何の問題ですか

679 名前:676 mailto:sage [2010/06/15(火) 22:57:12 ]
>>677
pは消し忘れました
無視してください

>>678
ポインタは初期化子で初期化するのか
コンストラクタの中で初期化するのか気になっただけです

680 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 23:04:05 ]
ぶっちゃけどっちでもたいした差はないよ
初期化子でnewしてもいいし
初期化子で0クリアして後でnewしてもいい

681 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 23:05:56 ]
>コンストラクタの中で
そりゃ代入
QString * const m_pstr
だったら後者は使えない

682 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 23:20:44 ]
>>675
extern Cで十分じゃないか?
同僚にCしか使えないような奴がいるんなら別だけど。

683 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 10:44:26 ]
C++にはプログラムを見難くする機能が満載である。
>>652の方がずーっとまし。

684 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 10:45:10 ]
それはないわ



685 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 12:44:01 ]
>>652 はほとんどC++だからね
どっちがましかと言えば、同じようなもんだけど
C++の方がきれいに書けるだろうね

686 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 14:35:28 ]
>>653
>zukeiへのポインタとしてしかxを宣言してない
その通り。

>(mainモジュール中でzukei構造体分のサイズしかメモリ確保してない?)
いや、Zukei構造体分の確保すらどこにもない。

>yoko、tateの値が入った領域って(間にいろんな処理)の際に
>別の変数の為に使われちゃったりしないか気になるんですが。
(間にいろんな処理)の以前、RecCreate()でyoko, tateに代入してる時点で
どこに書いてるのかわからない。
これが死なずに動いてるなら、それはただの偶然。

せめて、
main() {
Rec x;
RecCreate((void *)&x);
...
}
なら、動くだろうと思うけどさ。

687 名前:デフォルトの名無しさん [2010/06/16(水) 19:56:03 ]
ある数字の各桁をそれぞれ別の変数(配列)に代入したいんですが、いい方法ありますか?

688 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 19:57:22 ]
10で割れ

689 名前:デフォルトの名無しさん [2010/06/16(水) 19:58:11 ]
>>688
すみません、もう少し詳しくお願いします

690 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 20:01:53 ]
ここまでヒントもらって分からないとなるとひょっとすると脳に障害があるかもしれんな

691 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 20:05:33 ]
for(i = 0; n; i++, n /= 10) a[i] = n % 10;

692 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 20:08:35 ]
障害があったみたいです、ありがとうございました

693 名前:デフォルトの名無しさん mailto:sage [2010/06/16(水) 20:31:37 ]
いいってことよ

694 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 00:53:47 ]
#include <iostream>
using namespace std;
static const int N = 1024;
static const double L = 1.0;
int main(int argc,char** argv)
{
int i;
double I[N],a[N],b[N];
double dx=L/N;
cout << dx << endl;
I[0]=1.0;
for(i=0;i<=N;i++){
a[i]=1.0;
b[i]=1.0;
}
cout << dx << endl;
for(i=0;i<N;i++) I[i+1] = (1-a[i]*b[i]*dx)*I[i];
cout << dx << endl;
return 0;
}
このコードで10,16と18行目でdxの値が変わるんですが17行目でdxを変えるような事はしてないと思うのですが
なんで変わってしまうかを教えてください




695 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 00:56:01 ]
I[i+1]

696 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 01:03:56 ]
#include <iostream>
using namespace std;
//static const int N = 1024;
//static const double L = 1.0;
int main(int argc,char** argv)
{
int i,N=1024;
double I[N],a[N],b[N];
double L=1.0,dx=L/N;
cout << dx << endl;
I[0]=1.0;
for(i=0;i<=N;i++){
a[i]=1.0;
b[i]=1.0;
}
cout << dx << endl;
for(i=0;i<N;i++) I[i+1] = (1-a[i]*b[i]*dx)*I[i];
cout << dx << endl;
return 0;
}

こっちだったら問題なく一緒になるんですがI[i+1]のところが問題あるんですか?

697 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 01:08:19 ]
17行目のiが最大な時のi+1は?

698 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 01:11:43 ]
i<N なんで最終的に i+1=N になってると思うのですが

699 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 01:15:45 ]
double I[N] は l[0] .. l[N-1]まで

700 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 01:16:50 ]
配列のサイズを[N+1]にしたら同じになるようになりました
しかしなんで同じになるのか解せません

701 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 02:38:23 ]
似たようなアドレスにローカル変数ブチ込んでるから配列サイズオーバーして書き込んだ結果だろ。

702 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 03:26:38 ]
&I[N] と &dx を出力してみると分かるよ

703 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 05:33:56 ]
あとここも直しておくように
>for(i=0;i<=N;i++){ 
>a[i]=1.0; 
>b[i]=1.0; 
>}

704 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 09:02:32 ]
質問してるときはその質問が一段落するまではなんか一時コテでも名乗ってくれや。
>694=>696=>698=>700でいいのか?



705 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 12:48:58 ]
どうでもいい

706 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 22:27:06 ]
メンバのstd::vector< boost::weak_ptr<T> > container にオブジェクトを追加する関数ですが

share_ptrで受けて
void add(boost::shared_ptr<T> const& sp){
boost::weak_ptr<T> wp(sp);
container.push_back(wp);
}
関数内でweak_ptrを追加するのか

それとも直にweak_ptrを受ける
void add(boost::weak_ptr<T> const& wp){
container.push_back(wp);
}
どちらがよいでしょうか

また、生ポインタを引数にとってうまくやる仕組みはないでしょうか?
それとも生ポインタは受けないようにした方が良いでしょうか?



707 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 22:32:39 ]
どっちでもいいです

708 名前:デフォルトの名無しさん [2010/06/18(金) 05:47:06 ]
delete a;
delete b;
とすればOKなのですが、
delete a,b;
とするとmemory leakがおきます。なんででしょうか?

709 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 06:13:03 ]
誰がそんな書き方ができるって言った?

710 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 06:31:43 ]
>>708
delete(a,b);

711 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 07:14:01 ]
>>708
delete a,b;
だと, はカンマ演算子なので
delete a;
b;
という感じになってるんだよ

712 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 07:14:12 ]
え?

713 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 07:15:32 ]
>>710
死ね

714 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 07:22:56 ]
delete a, delete b;



715 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 09:12:34 ]
可変長テンプレートで纏めてデリートがトレンディ

716 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 17:59:26 ]
int a,b;はなぜOKなのでしょうか?

717 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 18:00:52 ]
宣言だから

718 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 20:33:39 ]
delete はああ見えて演算子だからね

719 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 22:39:08 ]
マクロスエースフロンティア[YouTube]
www.youtube.com/watch?v=1yn0fYFnMKk

この動画みたいに、移動する物体(敵)を追いかけながら
曲線を描いて、ビーム、もしくはミサイルのようなものを発射するのって
どうしたら良いのでしょうか?
直線でビームを出すのなら2点間の座標を取ってその間で
動かせばいいと思うんですが
何故曲がりくねらせることが出来るのか分かりません助けて下さい><

720 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 22:48:16 ]
>>560
亀ですまんが、protectedはよく使うだろ

721 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 23:02:30 ]
>>719
毎フレーム玉とターゲットの位置を調べて軌道修正してる。あとスレチな

722 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 23:20:10 ]
>>720
どんな時に使うんだ?

723 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 23:42:05 ]
protected継承の話じゃなくて、protectedメンバの話だよな?
使う使う。

724 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 23:43:38 ]
>>560はprotected継承の話だぜ
まあ滅多に使わないな



725 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 00:07:29 ]
>>724
んじゃ、>>556に対して>>560が的外れなレスをしちゃったってことか。
>>556はprotectedメンバについての話をしてるもんね

726 名前:デフォルトの名無しさん [2010/06/20(日) 16:49:11 ]
メンバ変数をコンストラクタで全部0にしたいんだけどどうするのが定石?
floatとかはとりあえず考えない感じで
memset(this,0,sizeof(this));とかできんの?

727 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 17:01:18 ]
>>726
memsetは危険。できない。
メンバー変数にはコンストラクターを持つ型を使用すれば、それらは自動的に初期化される。
コンストラクターを持たない型はboost::value_initializedを使う方法がある。

728 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 17:20:11 ]
なるほど。ありがとう!

729 名前:デフォルトの名無しさん [2010/06/22(火) 15:16:18 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10731.txt
// read fd_orgfile and write on fd_cpyfile
for (;;) {
size_t read_size;
char buf[1024];

read_size = read(fd_orgfile, buf, sizeof(buf));
if (read_size == 0) {
break;
}
write(fd_cpyfile, buf, read_size);
}
に複数間違いがあると言われたのですが分かりません
お手数ですが教えて下さい!

730 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 15:31:01 ]
>729
エラー処理ができていないってことかな。

read はエラーが発生すると -1 を返すけど、size_tはunsignedなので受け取れないとか。
(read_sizeに-1を代入すると MAX_UINTにかわってしまう。 (size_t)-1 と比較すればいいんだけど。)
どうせ、1024より大きな値が返ることはないので, int read_size にしておけばいい。
writeの戻り値をチェックしていないとか。



731 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:50:09 ]
コンストラクタTest()の中で別のコンストラクタを呼び出したいのですが
※1のようにしてTest()を実行しても変数nameは空のままです。
※2のようにするしかないのでしょうか?
---------------------------------------
※1
Test(){
Test("名無し");
}
Test(const string& st){
setName(st);
}
void setName(const string& st){
name=st;
}

---------------------------------------
※2
Test(){
setName("名無し");
}
Test(const string& st){
setName(st);
}
void setName(const string& st){
name=st;
}

732 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:03:01 ]
>>731
C++0x準拠のC++ならこう書けるけどね

Test() : Test("名無し") {
}

733 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 20:53:33 ]
>732
ありがとうございます。
記述を変更したところ、
E2312 test.cpp 13: 'Test' は曖昧でない基本クラス 'Test' ではない(関数 Test::Test() )
よろしくお願いします。

734 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 21:04:38 ]
C++0xだとと書いてあるね。



735 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 21:37:32 ]
ありがとうございます。
了解です。

736 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 21:46:12 ]
>>732
これVC++2010でも対応してないんだよなあ
すっげー期待してたのに

737 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 01:36:51 ]
while(!関数名)ってあったんですけどこれってどういう意味なんでしょうか?
もし関数が0を返したらwhile(!0)になると思うんですがこれは真なんでしょうか?
よろしくお願いします。

738 名前:デフォルトの名無しさん [2010/06/23(水) 01:47:11 ]
>>737
0を返すまでループ、って意図じゃないのか


739 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 02:00:01 ]
>>738
よく分かりました。
ありがとうございます!

740 名前:デフォルトの名無しさん [2010/06/23(水) 02:35:26 ]
日本語にするなら、1が返っている間はループ、ほうが多いかな
まあどっちでもいっしょだけど


741 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 02:45:31 ]
関数が0を返してる間はループだろw
正反対じゃねーかよ

742 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 03:37:50 ]
>>740
1が返ってきたら抜ける、と読み替えたとしてもまるでダメだな

743 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 09:11:13 ]
while (somefunc() == 0) って書くほうが意図がはっきりしていていいじゃないか。

744 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 09:50:04 ]
while(! isReady())
分かりやすい

while(isReady() == 0)
分かりづらい



745 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 10:05:20 ]
while(isReady() == FALSE)
これでおk

746 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 11:58:18 ]
LPVOIDから(ry

環境 XPSP3, VC++2008EE
DDSURFACEをDIBに変換して色情報をLPVOID lpvBitsから R=0x0F とかいう具合に
取り出したいのですが, どのようにすればいいでしょうか?
フックするのに必要だったので#define CINTERFACE してます
bool Screenshot(LPCTSTR FileName, LPDIRECTDRAWSURFACE7 lpDDS)
{
if (!FileName || !lpDDS) return false;

bool Success=false;
HDC SurfDC=NULL; // GDI-compatible device context for the surface
HBITMAP OffscrBmp=NULL; // bitmap that is converted to a DIB
HDC OffscrDC=NULL; // offscreen DC that we can select OffscrBmp into
LPBITMAPINFO lpbi=NULL; // bitmap format info; used by GetDIBits
LPVOID lpvBits=NULL; // pointer to bitmap bits array
中略)
if (!GetDIBits(OffscrDC, OffscrBmp, 0, Height, NULL, lpbi, DIB_RGB_COLORS))
ERROR_BREAK(5);
if ((lpvBits = new char[lpbi->bmiHeader.biSizeImage]) == NULL)
ERROR_BREAK(6);
if (!GetDIBits(OffscrDC, OffscrBmp, 0, Height, lpvBits, lpbi,
DIB_RGB_COLORS)) ERROR_BREAK(7);

ここのlpvBits[x+y*width]から取り出す場合どうすればいいのでしょう.
32bitBitMapだと仮定します.widthは中略内で宣言されてます

747 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 12:36:11 ]
codepad.org/b91JkFQh

これでセグっちゃうんですが何がいけないんでしょうか?
gdbで見てみたら
#0 0x00007ffff7ab3dd9 in vfprintf () from /lib/libc.so.6
#1 0x00007ffff7abecb8 in fprintf () from /lib/libc.so.6
#2 0x000000000040076c in main (argc=1, argv=0x7fffffffe8a8) at print.c:24
こんなエラーがでてきます

748 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 12:44:37 ]
そのループでいいのか?

749 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 12:50:44 ]
fopenの回数とfcloseの回数が全然違う。

750 名前:747 mailto:sage [2010/06/23(水) 12:52:01 ]
正しくはiのループはfprintfの上にあるべきだと思うんですがそれでもエラーでるんでいろいろ試してました

751 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 12:57:11 ]
fopenしっぱなしでfcloseしないでいると、一つのプロセスで開いておけるファイル数には制限があるので
そのうちfopenに失敗してfpがNULLになってsegvしている。

752 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 12:59:31 ]
何がしたいループなのかよくわからん。
datはいくつ作りたいんだよ?

753 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 13:03:38 ]
codepad.org/NKFODky7

これで自分のパソコンでは動くようになりました
ありがとうございました

754 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 13:04:28 ]
セグっちゃう



755 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 13:42:35 ]
セグウェイに乗れってことだろw

756 名前:746 mailto:sage [2010/06/23(水) 14:01:17 ]
代わりにgdi+になげて何とかしてみましたが,
たまに一般的エラー?をはきます。
fail safeかけて今のところ順調に動いてますが, 不安定なモジュールなのでしょうか.


757 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 14:10:51 ]
>>756
二行目の . が 。になってるYO

758 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 18:26:15 ]
>>753
世の中夜勤帰りで朝から寝てる人だっているんだよ?
引っ越しの時ちゃんと挨拶行った?
顔合わせたら軽く会話するとかしてちゃんとコンタクト取り続けてる?
日頃からそういうコミニュケーションが取れてればいつ洗濯機を回していいのか
いつ静かにしなければならないのか
迷惑を掛けないように生活出来るはずなんだが

759 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 18:43:02 ]
>>758
死ね

760 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 01:57:45 ]
VC++2005のMFCについて質問です。
数値(BYTE型)を入力するエディットボックスを使用します。
DELETEキー等でボックス内の値を未入力状態にすると
「0から255までの数値を入力してください」と出るのですが
これを表示させない方法があれば教えていただけますか?

761 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 12:26:49 ]
>>758
表札すら出してない隣人どもにわざわざ挨拶なんてしない
仮にしたとしても世間話にすらならないので相手の生活は基本推して知るべしだな

762 名前:デフォルトの名無しさん mailto:sage [2010/06/26(土) 12:29:15 ]
>>760
値のチェックをしなけりゃいい

763 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 00:20:52 ]
>>762
値のチェックを有効にしたままメッセージだけ出さないように
したいんです。
自分で範囲を決める場合(たとえば1から10までを入力可能範囲
にする)ならメッセージだけ回避する方法はわかるのですが、
型の入力範囲(BYTEなら0から255)そのものに対するチェックを
有効にした上でメッセージだけ回避したいのです。

764 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 09:26:35 ]
>QIODevice::QIODevice() : QObject(*new QIODevicePrivate, 0)
コードを読んでいたらこんなのを見つけたわけですが、
なんでnewの前に *を付けるんですか?



765 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 09:35:18 ]
newで返ってくるのはポインタ型。 それに*をつけて参照型にしてるだけ。

766 名前:デフォルトの名無しさん [2010/06/27(日) 11:28:46 ]
「初期化子リスト」の読み方ですが、
「しょきかし・りすと」 or 「しょきか・こりすと」
どっちが正しいのでしょうか?

767 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 11:32:35 ]
>>765
まて、それどうやってdeleteするんだ?

768 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 11:33:16 ]
>>766
しょきかし・りすと

769 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 11:54:59 ]
>>767
関数内じゃね?
出来るのか出来ても意味あるのか知らんけど。

770 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 12:07:16 ]
>>769
たしかに、参照で受けたのをdeleteするって変だよね

771 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 12:08:08 ]
>>767
&つけてdeleteすれば問題はない

772 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 12:11:17 ]
それは参照の使い方として正しいのか?

773 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 12:17:22 ]
出来ると思うけどあまりいいコーディングとは思えないな
shared_ptr使うのが吉

774 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 12:40:15 ]
規格上問題はない
まあ生のポインタを保持する時点で気持ち悪いが



775 名前:766 mailto:sage [2010/06/27(日) 14:43:27 ]
>>768
ありがとうございます。

776 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 19:40:57 ]
pgm画像に空間フィルタをかけて、平滑化を行うプログラムを、C++で書いているのですが、
実行後の出力画像が分身(?)してしまいます。
何が原因なのでしょうか?

ソースファイル、原画像、出力画像はこちら。
www1.axfc.net/uploader/Sc/so/128110.lzh&key=noisy
プログラムはBCC Debeloperで組んでいます。

777 名前:764 mailto:sage [2010/06/27(日) 21:05:04 ]
一応フレームワークのコードなので、
フレームワーク側で何とかしてくれているんじゃないですかね

778 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 21:14:28 ]
>>776
読み込むときに横方向と縦方向が逆になってると思う

class.cpp
     41         hig=HIG;
     42         for(int i=0;i<hig;i++){
     43                 for(int j=0;j<wid;j++)
     44                         fscanf(fp,"%d",&pix[j][i]);
     45         }
main.cpp
     43         for(int i=0;i<HIG;i++){
     44                 for(int j=0;j<WID;j++){
     45                         fprintf(fp,"%d\n",op[j][i]);
     46                 }
     47         }

779 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 21:24:03 ]
template<class T>はclass T;と同じニュアンスで書いているのですか?

780 名前:776 mailto:sage [2010/06/27(日) 21:49:53 ]
>>778
解決しました! ご協力感謝いたします。
www1.axfc.net/uploader/Sc/so/128162.pgm&key=noisy

781 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 21:55:03 ]
List[5][2][20]の配列のi番目をaと置き換えたく
List[i][0]='a';
List[i][1]='a';
としたのですが、「式は変更可能な左辺値である必要があります」と
エラーが出ました。
どうしたらいいですか?



782 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 21:58:43 ]
>781
i番目がどこなのかさっぱりわかりませぬ。
エラーメッセージの通り、左辺が変更可能では無いのでしょう。

Listはどのように宣言していますか?

783 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 21:58:57 ]
>>781
要素数が一個足りないような……。

784 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 22:05:18 ]
なんとなく
strcpy(List[i][0], "a");
とかやりたいのかな、なんて思ったり



785 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 22:05:25 ]
>>783
×:要素数 ○:添字

786 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 22:20:05 ]
補足です。
char List[5][2][20] です。

int i;
printf("削除したい番号を入力:");
scanf("%d",&i)
List[i-1][0]='a';
List[i-1][1]='a';

入力した番号の配列を削除するのが目的ですが
置き換えたほうが後に便利なので置き換えたかったのです・・・。


787 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 22:28:04 ]
List[i-1][0]='a';
List[i-1][1]='a';

の行を、

strcpy(List[i-1][0],"a");
strcpy(List[i-1][1],"a");

に変えればいいと思います。

回答とは関係ないですが、
Listは、「文字列の」2次元配列ってことですか?

788 名前:786 mailto:sage [2010/06/27(日) 22:44:00 ]
>>787
どうもありがとうございます!
成功しました。
えっとちなみにstrcpyを使わない方法はないでしょうか…?

あと自信はないですが、文字列の3次元配列だと思います。

789 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 22:51:34 ]
string使えばいいと思うよ

790 名前:デフォルトの名無しさん mailto:sage [2010/06/27(日) 23:15:22 ]
>>788
文字の3次元配列だと思うよ。

strcpy使わないならこんな感じ。
List[i-1][0][0] = 'a';
List[i-1][0][1] = '\0';
List[i-1][1][0] = 'a';
List[i-1][1][1] = '\0';

791 名前:786 mailto:sage [2010/06/28(月) 00:01:38 ]
>>790
成功しました!!!
どうもありがとうございます!!

792 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 06:18:57 ]
ゲーム画面の文字を自動で取得してテキスト化にするには
どうすればいいですか?
というか、可能ですか?

793 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 07:04:16 ]
ゲーム画面を取り込んでOCRにでもかければ?

794 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 10:46:53 ]
>>792
ゲーム毎に対応が異なってくるので、制作者にご相談ください。
相談できないような内容なら、この板のローカルルールに則って然るべくどうぞ。



795 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 22:38:05 ]
>786>790

もう解決したみたいだけど、
>入力した番号の配列を削除するのが目的ですが
配列を削除?ってのがちょっと引っかかる。

ほんとにやりたいのはこれじゃない?
List[i-1][0][0] = '\0'
List[i-1][1][0] = '\0'

796 名前:デフォルトの名無しさん mailto:sage [2010/06/28(月) 22:45:12 ]
>>795
削除するのをあきらめて置き換えにしてるわけで、空文字列にするのは置き換えのほうに分類されると思う。
ほんとにやりたいのはmemmoveで解決できたんじゃないかな。

797 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 21:03:02 ]
質問です。
私の環境はVC++2010、2008ですが、C++の言語全体として
答えていただけると幸いです。

enum E
{
E1,
E2,
}:

のようなenumがあったとき、E2 | E1 は、int になるらしいです。
ということは、

E e = E1 | E2;

に警告が出ます。
この辺のenumの取り扱いとして、

1. ビット演算のような用法 ( e = E1 | E2; )
2. まさにenum的な用法 (どれかひとつ)

ざっくりと、2種(または混合)があると思うのですが、この辺、何かしら
指針、指標のようなもの、もしくはベンダからの情報等はあるのでしょうか?

ベンダー依存でもいいので、何かしら情報があれば、よろしくお願いします。

798 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 21:06:56 ]
>>797
enumはフラグじゃないんダナ

799 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 22:14:58 ]
enum E{
 E1 = 0x1,
 E2 = 0x2,
 E3 = E1 | E2
};
または
E e = static_cast<E>( E1 | E2 );
だけどcastするぐらいだったら
int e = E1 | E2;
にして E1、E2もconst int 型にする方が良いと思う。(またはstd::bitset)

E e = E1 | E2;
はgccのc++0xではErrorになる

800 名前:デフォルトの名無しさん mailto:sage [2010/06/29(火) 23:48:14 ]
>>797
> 1. ビット演算のような用法 ( e = E1 | E2; )

それはない。


801 名前:デフォルトの名無しさん mailto:sage [2010/06/30(水) 22:21:04 ]
C++では列挙子同士のビット演算の結果を
その列挙型にキャストなしで戻せないからね
ビットフラグを扱う変数は普通の整数型にするしかない

個々のビットフラグをconst intで定義するかenumで定義するかは趣味の領域か

802 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 04:09:20 ]
C++の場合、暗黙のうちに整数型へ昇格されるから各種演算が可能なだけで、
列挙型の演算自体はデフォルトでは定義されないからな。
Cなら列挙型への暗黙の型変換があるから何でもできるが。

803 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 12:16:07 ]
inline関数化して違う型同士のビット演算を弾くべき

804 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 15:38:12 ]
コギレイに static const へ乗数入れる方法教えて。



805 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 17:14:09 ]
いみふ

806 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 18:16:07 ]
ファクトリでインスタンス生成して複数の他のオブジェクトに所有させるとき
削除の責務を何処に負わせるのが良いでしょうか?

共有してる側に負わせると、共有側それぞれの寿命までキニシナイと行けないようになるし
ファクトリにどんなインスタンスを生成したか記憶させるようにして
動作終了時にごそっと削除させてしまうべきか・・・?

807 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 18:36:50 ]
よろしい君にshared_ptrを使う権利を与えよう

808 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 18:39:03 ]
スマポが基本じゃね

809 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 19:03:47 ]
using namespace boost;
bind( CHoge::hoge , this , 50 , _1 , _2 , _3 );

を c++0xでboostを使用せずに記述する方法は無いでしょうか。


810 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 20:09:57 ]
>>804
staticメソッド作っておいて初期化でそれ使うぐらいしか思いつかん

811 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 20:10:45 ]
ラムダ関数は使えないのか?

812 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 20:56:51 ]
テンプレートの例題を見ると、変数xとyの値を交換するってのがある
こんなの本当にプログラミングで使うのか?
テンプレートってobject型の代わりに使っているような印象を受けるんだけど

813 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 21:07:19 ]
swapを使うこともない程度のプログラムしか書かないなら、たぶん一生テンプレートの恩恵は理解できない

814 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 22:19:55 ]
>>811
ヒントありがとうございます

f = [this](int a1,int a2,int a3) -> void { hoge(a1,a2,a3); };
で解決しました( VC10で確認 )
ただ残念な事に gcc4.4 を使用しているので当面は boost::bind の方を使用します。
半年待ちかな




815 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 22:35:28 ]
配列のバッファオーバーランが生まれてる場所って知る方法ないの?
どっかでぶっ壊れてるんだがまったく特定できん…

816 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 23:05:03 ]
assert使えばいいじゃない

817 名前:デフォルトの名無しさん mailto:sage [2010/07/01(木) 23:48:43 ]
>>815
デバッガにメモリの特定の箇所が変化したら止まる機能があるかもしれないから、
毎回決まった箇所が壊れるなら、それ使えばいい。
VSにはあった。

818 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 09:36:58 ]
>>817
まじで。スレ違いだけど教えてもらっていい?vs2008proで出来る?

819 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 11:17:42 ]
>>818
手元に2008がないから確認できない。
2005proなら、メニューの「デバッグ」→「ブレークポイントの作成」→「新しいデータブレイクポイントの作成」でできる。


820 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 11:38:27 ]
>>819
出来た!ありがとう!

821 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 23:25:14 ]
>>820
選択できないんだけど、どうすればいい?

822 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 23:26:34 ]
あ、ごめんデバッグ中にやればいいのか。

823 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 23:52:44 ]
int/intをやったときに小数点以下が「切り下げ」られるってのは保証されてる?

824 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 23:57:29 ]
うん



825 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 00:18:31 ]
てんきゅー

826 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 00:26:32 ]
>>823
-x/y だと 89 と 99 で結果が異なる CPU もあるんじゃなかったけ?
たしか、89 だと CPU 依存で 99 だと厳密に来ていされていたような気が…
# 完全にうろ覚え


827 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 01:49:05 ]
>>826
つttp://seclan.dll.jp/c99d/c99d05.htm

828 名前:デフォルトの名無しさん [2010/07/03(土) 13:10:28 ]
gcc4.2 mac osx で次のコードがコンパイルできません。不可能なのでしょうか。ご教授下さい。

template< class T >
class A
{
public:
A()
{
std::vector< A< T > > vec;
}
};

829 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 13:20:08 ]
>>828
vectorのところでA<T>のサイズが決まらないからじゃなイカ?
vector<shared_ptr<A<T>>> vec;
で試すでゲソ

830 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 17:52:30 ]
explicit なんですか、これ?

831 名前:デフォルトの名無しさん mailto:sage [2010/07/03(土) 18:25:56 ]
暗黙的型変換を抑制するキーワード

832 名前:830 mailto:sage [2010/07/03(土) 19:29:19 ]
>>831
thx

833 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 01:29:47 ]
Windows 7
Borland C++ 5.5.1で、カラー画像を指定した閾値で2値化するプログラムを書きました。

プログラムで処理した画像をout.bmpとして出力しているのですが、
この画像をプログラムを終了させることなく表示する方法はありませんか?

834 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 01:35:46 ]
閉じろ



835 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 07:57:20 ]
>>833
GUIを扱えるように勉強する

system関数等でwindows付属のビューア等を呼び出す

あたりかな


836 名前:デフォルトの名無しさん mailto:sage [2010/07/04(日) 09:29:48 ]
>>833
C#使え

837 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 03:50:48 ]
system("out.bmp");

838 名前:デフォルトの名無しさん [2010/07/05(月) 14:21:21 ]
出力と入力が決まっていない関数は
f(cin , cout );
って感じの関数を作ればいいですか?
cinとかをfinとかに変えても動作するみたいにできますか?

839 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 14:34:45 ]
Foo f(std::istream& in, std::ostream& out);

840 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 15:04:45 ]
ありがとうございます。

841 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 23:16:42 ]
ヘッダファイルって何であるんですか?
ヘッダファイルはコンピュータにとって何処が美味しいの

842 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 23:21:53 ]
ヘッダーはコンパイラのためにあるよ

843 名前:デフォルトの名無しさん mailto:sage [2010/07/05(月) 23:22:07 ]
>>841
ja.wikipedia.org/wiki/%E3%83%98%E3%83%83%E3%83%80%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB


844 名前:デフォルトの名無しさん [2010/07/06(火) 06:27:36 ]
vector<クラス*>のobjがあって(* objのイタレータ)->idというint型のメンバがあるのですが
vector<クラス*>の要素数は最大10個で
idは1〜10までの整数で、重複しないようにしたいのです
vector<クラス*>に要素を追加した時にそのidメンバに他のvector<クラス*>の要素が持ってない整数を入れたいです
例えば今要素5個のvctor<クラス*>があったとして前から並べた時にidが3,5,2,6,0のような場合に
6個目のvector<クラス*>を作ってそのidに3,5,2,6,0以外の1〜10の整数のうち一つ(無い値ならなんでも良い)を入れたいのですがどうすれば良いでしょうか?



845 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 07:00:37 ]
vectorじゃなくてmapを使う

846 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 07:04:42 ]
10個程度なら、総当りで使ってない整数を探したらいい

847 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 10:15:56 ]
>>844
たとえばクラスをFooとする。
Foo *valids[10] = {0};

vector<Foo *> v;
for (int i = 0; i < 10; i++) {
 if (!valids[i]) {
  Foo *foo = new Foo();
  foo->id = i;
  v.push_back(foo);
  valids[i] = foo;
 }
}

848 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 10:27:05 ]
ユニークな整数のリストを共有して
そこから借りたり返したりする


849 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 17:07:25 ]
入門Qt4プログラミングで

OvenTimer::OvenTimer(QWidget *parent)
 : QWidget(parent)
{
 //関数の中身
}

という表現があるのですが、
「: QWidget(parent)」の部分は何を意味しているのでしょうか?
OvenTimerクラスはpublicでQWidgetクラスを継承しています

850 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 17:10:36 ]
>>849
C++の基礎を勉強しなおせ
基底クラスの初期化子


851 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 17:23:30 ]
>>850
ベースクラスのコンストラクタの引数がポインタなことに違和感があって、
何か意味があるのかなと。。。参照ならしっくりくるんですが。

私に基礎がないからなんですね?頑張って勉強します。

852 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 17:34:22 ]
>>851
がんばれ

853 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 18:16:47 ]
> ベースクラスのコンストラクタの引数がポインタなことに違和感があって、

なんでだよw そのコンストラクタの引数も単にポインタでしょうにw

854 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 18:50:11 ]
>>853
コピーコンストラクタとかでは参照で受けるようにするのが普通だと思っていて、
そのコンストラクタを呼び出してもいいはずなのに、あえてポインタで受けるコントラクタを用意して
そのコンストラクタを呼び出すのは何か理由があるのかなと思ってしまったんです。

サブクラスのコンストラクタでベースクラスのポインタを受けるのは、
そのベースクラスがisでなくhasな場合もあるだろうし、
あまり違和感を感じないんです^^;

そもそも自身のポインタを受けるコンストラクタって用意するのが普通なんでしょうか。
ってことからわかってない><



855 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:02:51 ]
> そもそも自身のポインタを受けるコンストラクタって用意するのが普通なんでしょうか。

厳密に言うとおかしい。自身のポインタってのをthisのことだとすると。
自身のポインタを受けるコンストラクタっていう表現が。
コンストラクタにそのインスタンスのthisポインタを渡すことなどできない(?)し、
コンストラクタの初期化リスト呼び出しが終わったあと、
コンストラクタ本体へ処理が移らないとthisは使えない。

自身のポインタってのがQWidget(parent)に対する、
QWidget *parentのことであるとするなら(多分そのつもりなんだろうけど)、
クラスとインスタンスの違いが分かってない可能性すらある。
分かってるんだとしたら、そういう質問出てこないと思う。

たとえば、古典的なリンクリストを実装しようとしたら、
Node::Node(Node *next)っていうコンストラクタがあっても不思議じゃないし、
双方向だとしたらNode::Node(Node *next, Node *prev)ってのがあって不思議じゃない。

GUIのコンポーネント間に親子関係があるとき、
親が子を知っていることにくわえ、
子が親を知っていることもあたりまえによくあること。
だから、OvenTimer(QWidget *parent) みたいにコンストラクタで親オブジェクトを渡す。

コンストラクタだからどうあるべき、ってんじゃなくて、
あくまで用途ありきでオブジェクトやクラスなんかもあるし、
どういうコンストラクタを設けるかも、あくまで用途次第。

> そのコンストラクタを呼び出してもいいはずなのに

つまり、コピーする目的じゃ無いと思われ。

856 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:18:13 ]
>>855
ありがとうございます。

>厳密に言うとおかしい。自身のポインタってのをthisのことだとすると。
インスタンスの話ではなく、型の話です。ですから this のことはないと思っています。

>Node::Node(Node *next)っていうコンストラクタがあっても不思議じゃないし、
リンクのノードならしっくりきます。全然普通です。

>つまり、コピーする目的じゃ無いと思われ。
ということなんですね。よくわかりました。謎が解けました。
自身の(コピーによる)初期化ではなくて、あくまでメンバの一つにそのポインタを格納しているんですね。

そういう想像が直ぐにできなくて、不思議な書き方だなと思ってしまいました。
勉強になりました。ありがとうございました。

857 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:20:40 ]
>>856
>メンバの一つにそのポインタを格納しているんですね
それも違う・・・・・
いいからC++の勉強やり直してこいって

858 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 19:31:02 ]
>>857
例えばノードの場合だったら、
Node::Node(Node *next) {
// m_next 以外の初期化
m_next = next;
}
だと思ったので、同じように
m_parent = parent;
というコードがあるんだろうと理解したんですが・・・

うーん、なんかまだまだわかってないことがありそうですね、
まだ3週目ですし、もっと勉強してから質問します。失礼しました。

859 名前:849 mailto:sage [2010/07/06(火) 19:50:52 ]
勝手に話が進んでてワロタ

>>850
どうもありがとう

860 名前:デフォルトの名無しさん mailto:sage [2010/07/06(火) 23:17:50 ]
質問です。boost または stl の function です。

std::function<A(B, C, D)> func1;
std::function<A(C, D)> func2;

B b = 10;
func2 = xxx(func1, b);

上のように、テンプレート引数Bのみを拘束する、汎用的な xxx のような
機能をする関数とかありますでしょうか?

bind だと、引数ごとにプレースホルダが必要ぽいので、面倒なんです。

よろしくお願いします。

861 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 12:33:51 ]
質問です
音を扱うプログラムにて
#define RATE_44100 0xac440000
という定義を見ました
16進数でac44が10進数の44100に相当することは分かっているのですが、そうすると定義のように
0を余計に4つもつけている意味はなんでしょうか?
はじめ16進数でac440000が44100相当なのか、でも計算が全然合わない、と悩んだのですが・・・

862 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 12:40:16 ]
上位16bitと下位16bitに分けてるんだよ。

863 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 12:42:43 ]
すくなくともそのまま整数での意味じゃないよなその名前。

$ ruby -e 'p 0xac440000'
2890137600

$ ruby -e 'p 0xac44'
44100

なんかしらのビット演算をしようとして、
ac44を44100と名づけなおすことに何かメリットがある、
からそうなってるのか、
あるいは勘違いか。

864 名前:861 mailto:sage [2010/07/07(水) 12:54:27 ]
釈然としませんが半ばブラックボックス関数で扱われている数値であるので>>862で指摘されたとおり、関数内部で上位下位16bitで分けられていうるようです。

>>862-863
すばやいご返答ありがとうございました。



865 名前:デフォルトの名無しさん [2010/07/08(木) 03:55:10 ]
タイマーを使いたいのですがSetTimerは引数にHWNDがあるのでいろんな場所で使えませんよね?
HWNDを引数に持たない自分で作った関数の中でタイマーをセットするにはどうすれば良いのでしょうか?

866 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 03:59:19 ]
ヒント:SetTimerの第四引数

867 名前:宮城たった mailto:sage [2010/07/08(木) 05:56:21 ]
>>866
調べてみましたがよくわかりませんでした
void hogeA()
{
この関数中で大麻を窃盗
}

CALLBACK MsgProc( HWND hWnd〜)
{
大麻が経過したら最悪ここでhogeB関数をする、KillTimer
}
という感じにしたいのですが大麻 凍る獏関数というのが使えるのでしょうか?どうすれば良いのでしょうか?

868 名前:みやぎたった mailto:sage [2010/07/08(木) 06:24:57 ]
型だけ同じコールバック関数を作ってその関数の名前を第四引数に入れたらいいんだな
わかりやすく書けよ
乙!ありがとな!

869 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 18:59:36 ]
monodevelopで#include <stdio.h>

int main (void)
{
int num;
num = 0;
float f;
f = 0;

printf("整数を入力してください:");
scanf("%d", &num);

printf("浮動少数点数を入力してください:");
scanf("%f", &f);

printf("%d ", num);
printf("%f", f);

return 0;
}
を実行しても

整数を入力してください:浮動少数点数を入力してください:0 0.000000

と表示されるだけで入力ができません
何か問題があるのでしょうか?

870 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 19:26:45 ]
>>863
RATE_44100から、CDのサンプリングレート44.1kHzを連想出来ないキミはPGに向いていない。
これだからruby脳は…

871 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 19:34:28 ]
>>870
うるせー馬鹿w
CDのサンプリングレート44.1kHzなんか知らないっつーの。

872 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 20:33:17 ]
LZ法で圧縮したっていうデータのバイナリを見たら
データの中間辺りで、00 00 00 00と00が凄い連なっていたんだが
LZ法でこういうデータを吐き出すケースってどんな時?
スライド窓とか大きく確保しても、こうならないと思うんだが…

873 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 20:36:51 ]
870の方が馬鹿だね。

874 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 21:01:27 ]
>>872
0が1Gバイトくらいじゃね?



875 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 22:05:23 ]
1G所か10G合っても連なるのか怪しいな

876 名前:デフォルトの名無しさん mailto:void main() (笑) [2010/07/08(木) 22:08:28 ]
>>871
これだから ruby 脳は‥‥‥。

877 名前:デフォルトの名無しさん mailto:sage [2010/07/08(木) 23:38:15 ]
下位アドレスを豪快に端折ってるコンテナ形式とかだったら詰め物の可能性もあるね

878 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 00:02:29 ]
>>871
無知自慢しなくていいぞ。ruby脳

879 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 23:27:58 ]
プログラムで生成した画像データを連番のファイル名で保存したいと思っています。
for(i=0;i=<100;i++) sprintf(str,"out-%d.jpg",i);
というプログラムを書いたのですが、出力は
out-0.jpg out-1.jpg・・・out-10.jpg ・・・ out-100.jpg
と桁がそろっていない形になっています。
出力する数字を3桁にして、out-0.jpgをout-000.jpgとなるようにする場合、
どうしたら良いですか?


880 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 23:59:00 ]
%d -> %03d

881 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 16:55:13 ]
struct{
std::string text;
int number;
int count;
} data;

std::vector<data>
このようなdataの配列があるとして、textとcountが重複している要素があったら重複しないようにしてcountは足すという事をしたいのですが、
単純に前から順に比較していって新しい配列に結果を格納していくという方法しか思いつきません。
速い方法があったら教えて頂きたいです。

882 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 18:52:35 ]
>>881
どういう処理をさせたいのか分からないけど、
その構造でそういうやりくりするのって、
すっげー始末が悪いと思う。

883 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 20:00:05 ]
>>881
>textとcountが重複して
textとnumberが重複してたらcountを足すんじゃなくてtextとcountなんだな?
じゃぁvectorの全走査でしかたないんじゃない?
判定に使うcountが変動するんじゃ、
単純に前から比較しなくて済む方法使った場合格納時に並べ直す必要が出ちゃうし

884 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 21:12:24 ]
24bitのビットマップで表現出来る色(256^3)色をすべて含めた1枚の画像を作りたいです。
1画素に1色とすると(256^3)画素が必要だと思うので、
√(256^3) = 4096で、4096×4096の画像を出力することになりますよね?
そこで、出力用の配列としてimage_out[4096][4096][3]という配列を用意したのですが、うまく色が入ってない様です。

for(i=0;i<255;i++){
for(j=0;j<255;j++){
for(k=0;k<255;k++){
image_out[l][m][0]=k;
image_out[l][m][1]=j;
image_out[l][m][2]=i;
m++;
if(m==4096){
m=0;
l++;
}
}
}
}
この様なプログラムを書いたのですが、どう修正したら良いでしょうか?




885 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 21:30:17 ]
なんで<255

886 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 21:47:27 ]
あー 256か<=255か・・・・
でも、同じ色の菱形ができるんです・・・

887 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 21:57:20 ]
スレ違いかも知れまんが質問させてください。
現在中学二年生で工科高校のシステム科を受験しようと考えています。
それに伴い、C言語を学習しようと考えているのですが、どのような事をまなべばいいのでしょうか?
いままでHSPというwindows用のインタプリタ言語を使いゲーム制作をしてきました。
C言語でもゲーム制作を学習して良いのでしょうか?それともゲームなどとはちがうソフトウェア制作を学習したほうが良いのでしょうか。

888 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 21:58:47 ]
>>887
ゲームで学ぶことを知っているのなら、
ゲームで学んで十分。
構造体やポインタ、メモリの動的確保。
全部ゲームで押さえることができる。

889 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 21:59:37 ]
むしろゲームは集大成っていう

890 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 22:03:53 ]
普通高校に行きなさい

891 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 22:06:35 ]
工業高校は高卒で地元企業で一生下っ端もしくはたたき上げになるつもりがなければ行くメリット無し。
普通の進学校いけ。プログラミングは学校で学ぶもんでもない。
やりたいことなんていつ変わるかわからんのだし。

892 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 22:07:39 ]
プログラミングは独学するやる気があるなら全く学校に拘る必要はない。

893 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 22:17:05 ]
これからのIT産業は斜陽産業だぞ?
景気の良かった頃でもゲーム開発は社員の寿命が短かった
(若くても辞めざるを得なくなる)
あまり勧められんなぁ

894 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 22:18:33 ]
入り口はどうあれ、結局最後は独学だよな。
いかに言語の規格を正しく理解するか。
コードをいっぱい読んでイディオムを見出し、
設計に躓きまくってデザパタにも親しむ。
APIリファレンスとホワイトボードだけが友達。



895 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 22:31:26 ]
はっきり言って常に新技術の勉強を続ける覚悟がいるぞ。

896 名前:名無しさん@そうだ選挙に行こう mailto:void main() (笑) [2010/07/10(土) 22:36:28 ]
>>895
若い頃は簡単でも歳食うとこれがまあかなり難しい。

897 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 22:52:03 ]
みなさんありがとうございます。
別にゲーム制作を本業にするつもりは全くないです。
ただ工科高校のシステム科は就職率が高いとのことなのでそちらを進路に選択しました。
家庭事情的にも働かなければいけないので大学に行けないので…

それならプログラムをまなぶ前にパソコン検定などの資格を取り、基本的な操作を学んだほうがいいのでしょうか?

898 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 22:54:45 ]
書き込んでから気付いたのですが、はげしくスレチですね。
スルーで構いません。無駄レスすみませんでした。

899 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 01:35:04 ]
このご時世高卒がありつける仕事なんてどこ行こうが変わらんよ

900 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 13:53:43 ]
マ板に帰れお前ら
あと>>887も行け
スレチどころか板違いだ死ね

901 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 14:06:37 ]
        ハ,,ハ
       (*゚ω゚ )  >>900お断りします
.       (=====)
      _(_⌒) )
    /\  `J  ̄ ̄\
     ̄ ̄ ̄ ̄| | ̄ ̄ ̄
            |
          / \
             ̄

902 名前:名無しさん@そうだ選挙に行こう [2010/07/11(日) 20:28:31 ]
2ch書き込み用のライブラリって何がありますか?


903 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:30:51 ]
socket.h

904 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:53:05 ]
>>903
有難うございます
ググって見ます



905 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:53:37 ]
あ、いやなんかごめん

906 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 23:02:42 ]
>>902
現在無いので
httpを簡単に扱えるライブラリ(これはいろいろある)を探して
monazillaあたりで、書き込みの方法を調べるのが割と楽かと

907 名前:デフォルトの名無しさん mailto:sage [2010/07/11(日) 23:38:07 ]
>>906
嘘でしたか
ありがとうございます

908 名前:デフォルトの名無しさん mailto:sage [2010/07/11(日) 23:47:57 ]
>>907
作ったら公開してよ。

909 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 00:29:06 ]
>>907
いや嘘じゃねーよ。socke.h使えば2ch書き込みだってできるっつのふざけんな。

910 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 00:33:26 ]
2ch書き込み用のライブラリか?って言われると確実に嘘だけどな

911 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 12:06:27 ]
dolib

912 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 13:24:15 ]
2chの書き込みなど簡単だろ。スクリプト言語のブラウザ動作真似るやつ使え。
UWSCなら手動操作をスクリプト化出来るし。

913 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 13:25:11 ]
それよりも、P2P掲示板作ってくれよ。
そしたら、規制掛からないし。いいよ。

914 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 18:37:44 ]
FreeNet








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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