- 1 名前:デフォルトの名無しさん [2009/07/19(日) 22:32:32 ]
- スレを勃てるまでもない低俗な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/
- 573 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 02:23:05 ]
- ShellExecuteEx()の方がいいだろ
- 574 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 02:37:30 ]
- なにその非標準関数。
- 575 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 06:52:17 ]
- >>573
すげー環境依存w まあsystemも同じようなものか。
- 576 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 11:59:27 ]
- template<class T>
class C { }; template<> class C<int> { void F() { } }; としたときC<int>::F()でint直記述ではなくTの値を使いたいのですが、方法はありますでしょうか? よろしくお願いします
- 577 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 12:24:16 ]
- typedef int T;
- 578 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 14:23:34 ]
- 特殊化しといてT使いたいとか意味がわからんですよ
- 579 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 14:37:37 ]
- 興味のない方はすみません(スルーお願いします。)
新しくコンテストを来年開きたいと思っています プログラマー(ゲーム・ツール・)の方は pc12.2ch.net/test/read.cgi/tech/1221701297/l50 のスレに来てもらえるとうれしいです。 運営も募集しています。 ↓のような感じでコンテストを開始する予定です。 219.113.110.143/
- 580 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 17:50:57 ]
- template<typename T>void F(){}
template<typename T>class C{template<>friend void F<T>();}; template<>class C<int>{template<typename T>friend void F();}; みたいな事したいって話?
- 581 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 19:31:36 ]
- クラスAのインスタンスの参照をもっているクラスBのインスタンスが複数あるとき
Aの寿命がすべてのBより長いことを保障したい shared_ptr以外にいい方法はありますか
- 582 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 21:18:06 ]
- >>581
なぜshared_ptrじゃ不満なのだい?
- 583 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:06:32 ]
- >>578
複数箇所に同じ定数値を記述する手間を省きたかったので >>580 目的としてはそれに近いですがfriendは使いたくないです アクセスする方法はなさそうですね、ありがとうございました
- 584 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 18:00:06 ]
- 32ビットマシンでコンパイルしたバイナリは16 64ビットマシンだと動かないんですか?
- 585 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 18:16:06 ]
- 動くか動かないかは、コンパイルしたマシンで決まるわけではありません
- 586 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 21:53:02 ]
- >>581スタティックに保障したいということならば、構造化を考えればいい。
スコープの外側で宣言した変数の参照をスコープ内だけで使用するのであれば 寿命の関係はスコープの外側>スコープの内側になる。C++の参照はこれに則っている。
- 587 名前:デフォルトの名無しさん [2009/08/25(火) 23:43:19 ]
- 質問っす
double d; 〜dを使った計算〜 int i = (int)(d * 32767.0); てな計算があったんですけどこれの意味わかる方いらっしゃらないでしょうか? 32767という数字からしてただのかけ算じゃない気がするのです。
- 588 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:50:06 ]
- www.google.co.jp/search?q=32767.0
でパッと眺めて使われているのはRAND_MAX関係での割り算と あとは座標関係が多いようだが、さて。
- 589 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:52:49 ]
- >>587
その行だけ見たら「ただのかけ算」としか言いようがないぞ。
- 590 名前:デフォルトの名無しさん [2009/08/26(水) 00:09:11 ]
- 何かイデオムでもあるのかと思ったのですがそういう訳でもないみたいですね
もう少し自力で調べてみます
- 591 名前:デフォルトの名無しさん [2009/08/26(水) 01:28:09 ]
- 文字変数aに『b』という文字、文字変数bに『c』という文字を代入して、変数aとcを使って、『db』と出力するプログラムを作成せよ
#include<iostream> using namespace std; int main() { char a = 'b'; char c = 'd'; cout << "db" << '\n'; return 0; } この問題これじゃダメなんですか?
- 592 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:45:18 ]
- g++先生に聞いてみたら、
> db.cpp: In function ‘int main()’: > db.cpp:6: warning: unused variable ‘a’ > db.cpp:7: warning: unused variable ‘c’ unusedだって。
- 593 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 09:25:46 ]
- >>591
#include <iostream> int main() { char a = 'b'; char c = 'd'; std::cout << char(a + 2) << char(c - 2) << std::endl; return 0; }
- 594 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 10:58:16 ]
- >>591
つ[変数aとcを使って]
- 595 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 11:08:55 ]
- > 文字変数bに『c』という文字を代入
これが > 文字変数cに『d』という文字を代入 の誤記として #include<iostream> using namespace std; int main() { char a char c; a = 'b'; c = 'd'; cout << "db" << '\n'; return 0; } とすればどうだろうか
- 596 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 11:52:14 ]
- >文字変数aに『b』という文字、文字変数bに『c』という文字を代入して、
ふんふん。 >変数aとcを使って、 あれcどっから出てきてんねん。 >『db』と出力するプログラムを作成せよ おいぃぃぃーーー! という突っ込み待ち問題w
- 597 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 12:45:53 ]
- class foo{public:typedef shared_ptr<foo> sp;}
typedef shared_ptr<foo> spfoo; どっちがいい?
- 598 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:39:31 ]
- namespace使おうぜ
- 599 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 19:37:45 ]
- namespaceとtypedefが関数内で使えるなんて
おじさん知らなかったよ
- 600 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 22:14:02 ]
- int main {
namespace A { enum U { a, b, c }; } } ってやったらエラーでたよ?
- 601 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 22:29:31 ]
- そりゃ出るだろ
- 602 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 22:33:50 ]
- >>599が「namespaceは関数内で使える」って言ってるのに
main関数内では使えないなんて!
- 603 名前:デフォルトの名無しさん [2009/08/26(水) 23:48:29 ]
- >>595
ありがとうございます。つまり、>>594さんが言ってるのと合わせると、aとcっていうのを変数である、としてから、 作るって事なんでしょうか?
- 604 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 00:17:26 ]
- 「何か質問してください」って泣いて頼むんだったら質問してやってもいいよ( ・ω・)y─┛〜〜
- 605 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 00:24:55 ]
- 消えてください(´;ω;`)
- 606 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 00:58:12 ]
- 関数の引数で要素数の分からない二次元配列を受け取るにはどうすればいいですか?
決まった要素数でなく、様々な要素数の二次元配列に対応させたいんですが
- 607 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 01:03:30 ]
- template<typename T,size_t T0,sizet T1>T func(T x[T0][T1]);
- 608 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 01:19:04 ]
- ごめんなさいCなんでテンプレートなしで
- 609 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 01:39:19 ]
- タスクシステムってようはコマンドパターンのリストみたいなもん?
- 610 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 02:27:50 ]
- 配列とSTLリストについての質問です。
配列を配列のままアクセスする場合と、ポインタ型のリストに入れてアクセスする場合 かなりの差が出てしまうのでしょうか? <具体例> あるクラス Aがあるとします。 A a[1000]; //A型の配列a list<A*> list; //Aのポインタ型リスト list と配列とリストを作り、listには配列aを1000個すべて入れていきます。(順序は関係なく) 配列aとリストlistをそれぞれ始めから終わりまでアクセスする。
- 611 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 02:30:34 ]
- 日本語が不十分でした。
かなりの差が出てしまうのでしょうか? ↓ かなり速度において差が出てしまうのでしょうか? 追記:低スペックにおいての場合です。
- 612 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 03:40:15 ]
- 実際にやってみて比較すればいいだけじゃん。
- 613 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 06:46:01 ]
- >>610
その単純な使い方なら、配列のほうが早いだろう。 しかし、実際に使うときは、使い方と処理方法により変わる。 いわゆる、適材適所だ。
- 614 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 11:47:43 ]
- >>606
せめて C FAQ くらい読もうか。 ttp://www.kouno.jp/home/c_faq/c6.html#19
- 615 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 12:08:51 ]
- 先に書き込まれていたでござる
typedef unsigned long int size_t; #if __STDC_VERSION__ == 199901L int do_something_array(size_t row, size_t column, int array[][column]) { for ( size_t i = 0; i < row; ++i ) for ( size_t j = 0; j < column; ++j ) (void)array[i][j]; return 0; } #else int do_something_array(size_t row, size_t column, void *array) { int *ary = array; size_t i, j; for ( i = 0; i < row; ++i ) for ( j = 0; j < column; ++j ) (void)ary[i*column + j]; return 0; } #endif /* __STDC_VERSION__ == 199901L */ #define numberof(a) (sizeof(a)/sizeof(a[0])) int main(void) { int array[][3] = { {1, 2, 3}, {4, 5, 6} }; do_something_array(numberof(array), numberof(array[0]), array); return 0; } 行数詰めたのでめちゃくちゃ見にくい
- 616 名前:610 mailto:sage [2009/08/27(木) 12:25:36 ]
- >>612
比較してみたのですが、かなりの差が出てしまい… (iが1000ほどで 配列が1ms、リストが9msほど) どこか間違いでもあるのかと疑っていましたので… >>613 具体的には a[i].Exec などのように同じ処理をさせるのです。 配列、リスト、共に順序に意味など持たず できるだけ処理速度(始めから最後まで)を重視したいと思っています。 また、頻繁にアクセスさせます(ゲームなので16msに一度程度) このような単純な場合では配列の方が適切なのでしょうか? for(int i=0;i<1000;){ a[i].Exec; }
- 617 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 12:29:28 ]
- >>616
本当はlistじゃなくてvectorを使うべきなんじゃないの?
- 618 名前:610 mailto:sage [2009/08/27(木) 12:59:54 ]
- >>617
Vectorも一度考えたのですが、まだ検証してみてはいません。 listで実装してしようと思った理由は、サンプルでそのような処理を行っていたためです。 (要素数の少ない処理でしたので差は体感できなかったのです) >>610などの例では要素数が一定なのですが、 配列ではflagでExec()を実行するか否かを管理、リストでは実行するか否かを EnableListとDisableList間で追加削除のやり取りをして、管理しています。 list<A*> EnableList; //実行したい配列のポインタのリスト list<A*> DisableList; //実行したくない配列のポインタのリスト Vectorが静的配列と同じくらいの処理速度でアクセスできれば この処理について(追加削除などもあるので)適切だと思うのですが… 試していませんので分からない状態です。
- 619 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 17:48:18 ]
- constつきのメンバー関数への関数ポインタってどう宣言するんでしょうか?
- 620 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 17:49:29 ]
- すいません自己解決しました
- 621 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 18:52:55 ]
- 個数が分かってるならリザーブしとけば十分速いんでないの?
- 622 名前:610 mailto:sage [2009/08/27(木) 22:27:21 ]
- Vectorで試してみました。
アクセスするだけならば、かなり早かったのですが 削除のために、iteratorをインクリメントしたりすると負荷が大きいみたいです・・・ iterator絡みの処理は負荷が高いんですね・・・初めて知りました。 >>621 リザーブすれば、速かったです。 ただ、削除・追加を行うには負荷が大きいようで この事を考えると静的配列の方がいいのかなと・・・
- 623 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 22:37:42 ]
- >>610
もうなでもいいから静的配列でやれ
- 624 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 23:13:23 ]
- VC++ならvectorのiteratorはポインタ実装じゃなかったっけ
debugでやってないか?
- 625 名前:610 mailto:sage [2009/08/27(木) 23:24:20 ]
- >>624
>VC++ならvectorのiteratorはポインタ実装じゃなかったっけ VC++ですが、勉強不足で理解できませんorz 削除は、iteratorが指しているものしかできないようなのでインクリメントしてました。 debugでやってます。Releaseとの違いがよくわからず、ずっとdebugでやってきているのですが 処理速度などの違いがでるものなのですか?
- 626 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 23:30:20 ]
- debugモードの時のSTLはエラーチェックがかかりまくるので相当遅い
releaseにするとコンパイル結果がiterator使ったときとポインタ使ったときで同じになる まあ、なんだ、やってみろ そしてEffectiveSTLでも読んでろ
- 627 名前:610 mailto:sage [2009/08/27(木) 23:38:06 ]
- >>626
やってきました。吊ってきますorz でも、こんな恥ずかしい事を早めに教えてもらって助かりました。リアルじゃなくてよかった・・・ EffectiveSTL買って読んでみます。
- 628 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 02:26:31 ]
- なにこの<int>とかいうやつ。
適当に自前でリスト作って動かしたら速かったので変えたよ! と、いう事態を何度か目の当たりにしたわ
- 629 名前:デフォルトの名無しさん [2009/08/28(金) 03:05:28 ]
- 上底を入力してください(単位cm)
3 下底を入力してください(単位cm) 4 高さを入力してください(単位cm) 5.0 台形の面積は17.5平方センチです こんな感じのプログラムを作りたいんですが、 #include <iostream> using namespace std; int main() { int input1,input2,input3; cout << "上底(cm)を入力してください\n"; cin >> input1; cout << "下底(cm)を入力してください\n"; cin >> input2; cout << "高さ(cm)を入力してください\n"; cin >> input3; return 0; } cin >> input3;から下が分かりません。
- 630 名前:デフォルトの名無しさん [2009/08/28(金) 03:19:06 ]
- 1つはfloatにするの忘れました。すみません
- 631 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 03:43:27 ]
- ほー、台形の面積の求め方というのは、ゆとり教育と関係があったのか。
www.google.co.jp/search?q=%91%E4%8C%60%82%CC%96%CA%90%CF
- 632 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 19:35:59 ]
- >>587
固定小数点にしたかったんじゃないの?
- 633 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 19:49:13 ]
- >>632
俺もそれは思ったけどやるなら32768じゃない? 32767だとどうなるんだろ・・・
- 634 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 20:49:40 ]
- >>633
ここのベクトル演算のヨタ話みたいなことじゃない? www.flightinfo.jp/tmurakam/scatut2/fdinmen.html
- 635 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 23:58:08 ]
- #if PROTOTYPES
#define P(p) p #else #define P(p) () #endif int func P((int x, int y)); こんな気持ち悪いプリプロセッサを見つけたんですが、 これは何事でしょうか?
- 636 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 00:01:06 ]
- プリプロセッサを見つけたのかよ
- 637 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 00:22:15 ]
- >>635
ヘッダファイル見たことないのか? 見れば、似たようなものがあちこちで使われだろう ANSI-C形式のプロトタイプ宣言をサポートしてないCコンパイラのため
- 638 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:26:49 ]
- int x = 3;
int* x = new int(3); ってさ後者がヒープ領域で、前者はどこに領域確保されてるの? 似たような質問で クラスのオブジェクトの宣言で(仮にStudentというクラスにnameというメンバがあったとして) Student sato("佐藤"); Student* sato = new Student("佐藤"); ってできるけど、これってどう使い分けるの? メンバにアクセスするとき 前者は sato.name ってできるけど 後者は (*sato).name or sato ->name じゃなきゃできないらしい本読む限り。 視覚的に前者の「sato.name」の方がわかりやすいんだけど。使い分けを教えてください。 よろしくお願いします。
- 639 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:34:33 ]
- >>638
ヒープを知ってるならスタックを知ってても良さそうにおもうけど、スタック領域。 newはヒープ領域に確保、単なる宣言はスタック領域に確保
- 640 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:36:09 ]
- スタックには置きたくなく、どうしてもアロー演算子がいやな場合はtypedefまたはエイリアスを作ればよいかな
- 641 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:37:17 ]
- typedefうそでした!
- 642 名前:デフォルトの名無しさん [2009/08/29(土) 01:59:30 ]
- >>638
Studentのインスタンスを不定個作りたいときは後者じゃないと。
- 643 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 10:56:55 ]
- みなさんありがとう。
>>642 どういうこと? Student型の配列として扱い Student* satous[] = {new Student("佐藤一郎") , new Student("佐藤次郎") }; ってやるためということ?
- 644 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 11:07:59 ]
- >>638 インスタンスの寿命で考えると分かる。
{ Student sato("佐藤"); //ここでインスタンスが作られる。 } //ここでインスタンスが自動的に消滅する。 Student* sato; { sato = new Student("佐藤");//ここでインスタンスが作られる }//ここではインスタンスは消滅されない。 delete sato; //ここでインスタンスを消滅させる。
- 645 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 11:15:33 ]
- >>643
インスタンスを不定個作るということは、インスタンスを作る時と削除する時を コンパイル時ではなく実行時に決めるから。
- 646 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 11:31:41 ]
- すみません
演算子のオーバーロードをした場合(例えば、operator()(int a)みたいな感じで) クラス内部でアクセスするときは、operator()(10)とするのが良いのでしょうか? それとも、(*this)(10)とするのが良いのでしょうか? 非常にくだらない質問だとは思いますが、よろしくお願いします
- 647 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 14:37:45 ]
- (*this)は式のままの書式で書けるメリットがある。
でも()は関数の形式だからどっちで書いても大差がないね。 thisを使うと最適化にはどういう影響が出るのかな?知ってる人教えて!
- 648 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 15:20:47 ]
- どっちでも変わらんように思うけど、識者に任せる
- 649 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 06:26:10 ]
- >>634
そういうことならありえるね 参考になったわありがとう
- 650 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 08:42:11 ]
- C++でJavaみたいにfinalメソッドを作ることはできませんか?
- 651 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 11:51:27 ]
- >>650
virtualをつけなかったら、finalになるんじゃないの?
- 652 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 11:54:12 ]
- 継承エラーなクラスを作ることはできますよ
- 653 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 12:38:26 ]
- >>651-652
親クラスのポインタに子クラスを代入してるときにvirtualつけてないメンバ関数を呼べば 確かにそうなるかも知れないけど。 そうじゃなくて継承はさせたいけど特定のメンバ関数は上書きして欲しくない。 こういうのはC++では無理っぽいですか?
- 654 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 12:39:31 ]
- Boostにそれっぽいのはあったような
- 655 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 14:15:46 ]
- >>651
お・・・おまw 知ったかぶりするなよ。
- 656 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 16:30:44 ]
- >>647-648
ありがとう 取りあえずは見た目優先でも問題なしと言うことでいいんすかね?
- 657 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 18:11:22 ]
- 変数を使う直前で宣言した場合よりも、スコープの先頭で宣言したほうが処理速度が速くなって
びっくりしました。 これって一般的なことなんでしょうか? 条件によっては速くなったり遅くなったりするものですか? コンパイラ次第なんでしょうか? 今、使っているコンパイラはVC++コンパイラです。
- 658 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 18:14:09 ]
- 一概には言えないが、そんなはずはないはず。
releaseでコンパイルしてCtrl+F5で実行しても?
- 659 名前:名無しさん@そうだ選挙に行こう [2009/08/30(日) 18:18:18 ]
- while(true){
ClassA a; } とかやってるんじゃない?
- 660 名前:657 mailto:sage [2009/08/30(日) 18:30:52 ]
- >>658
Releaseコンパイルでそうなるんです。(DLLですので、実行時に別のアプリでそれを動かしてます) >>659 いえ、forループには入っていますが、static intやstatic boolです。 クラスや大きな構造体を毎回初期化というようなことではないです。 不思議です^^;
- 661 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 18:37:27 ]
- とりあえずコードを(ry
- 662 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 18:38:54 ]
- >>660 ちょっとまて、おぬしスタティックと申したか?
- 663 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 18:59:19 ]
- 座標について質問です
5*5マスの座標の一行目の一番左を(x1,y1)、右へ行くほど数字を大きくして一番右が(x5,y1) 二行目の一番左が(x1,y2)、一番右が(x5,y2)・・とします そして自分が(x3,y3)にいて、前方を向いていれば 前方に2、左へ1の座標は(x2,y1)になりますが、右を向くと(x5,y2)になり、 後方を向くと(x4,y5)になります 一箇所だけならifやselectで条件分岐させるのですが、量が大きいのです こういう時、この座標はどう計算すればよいのでしょうか?
- 664 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 19:06:48 ]
- 三角木馬関数を使いなさい。
- 665 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 19:16:30 ]
- >>664
ありがとうございまかす
- 666 名前:657 mailto:sage [2009/08/30(日) 19:18:44 ]
- >>661
すみません、ちょっと複雑ですw >>662 あ、はい、staticです・・・(?)
- 667 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 19:31:56 ]
- >>663
class Hoge { int x;//位置X int y;//位置Y int x0://向きx int y0;//向きy public: void Hoge() :x(0),y(0) ,x0(1),y0(0) //初期値は右向き { } void forward()//進む { x+=x0;y+=y0; } void right()//右に回転 { int atmp=x0; x0=y0; y0=-atmp; } void left()//左回転 { int atmp=x0; x0=-y0; y0=atmp; } };
- 668 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 21:07:05 ]
- Stateパターンの方がよくね?
- 669 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 21:35:57 ]
- C#のインデクサと同じことをC++でやるテクニックってありますかね?
- 670 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 21:39:01 ]
- operator[]
- 671 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 21:56:30 ]
- >>666
ソースを貼れないなら自分で調べるしかない。 該当箇所にブレークポイントを打ってF5。止まったところでALT+8して逆アセンブルを比較する。 処理速度が気になるときは逆アセンブルを見るのが近道
- 672 名前:663 mailto:sage [2009/08/30(日) 22:25:34 ]
- >>664
すいません、ダメでした >>663の前方に2、左に1のy座標を求めるために計算してみました (120*π/180)でラジアンをだし、それを半径の長さ(1^2+2^2=5 ピタゴラスの定理でsqrt(5)) のsqrt(5)で割ってsinを出してみたところうまくいきません。どこが問題なのでしょうか? ↓のコードの結果は0.805573になります #include <iostream> #include <math.h> #define PI 3.14159 using namespace std; int main() { double deg = 120; double rad = (deg * PI / 180.0)/sqrt(5.0); cout <<sin(rad) ; return 0; } >>667 ありがとうございます アクションRPGに導入するとものすごいコードが短縮できました! が、マスメ状ではうまく動きませんでした・・
- 673 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 22:56:24 ]
- >>672
高校から数学をやり直せ 中学かもしれん
|

|