- 1 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:09:22 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.44【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1194016813/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 2 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 15:30:01 ]
- スレ建て乙
- 3 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:20:05 ]
- 早速質問です。
引数に小数をとるにほどうすれば良いでしょうか? int main (int argc, char *argv[]){ float x ; x = *argv[1]; fprintf(stdout, "%f¥n", x); return; } ↑無理 int main (int argc, float *argv[]){ float x ; x = *argv[1]; fprintf(stdout, "%f¥n", x); return; } ↑無理 でした。
- 4 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:26:55 ]
- >>3
int main (int argc, char *argv[]){ float x ; sscanf(argv[1],"%f",&x); fprintf(stdout, "%f\n", x); return 0; }
- 5 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:28:03 ]
- >>3
引数に小数をとるには〜って変な質問だな。 それぞれの引数(argv)は文字列なのだから、文字列を整数や少数に変換するには?と質問するところだ。 atof
- 6 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:31:58 ]
- >>5
引数が文字列ってのをわかってないんだろ
- 7 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 17:01:51 ]
- >>6
いや、もちろんわかってますよ。 charへのポインタの配列ぐらい。 で、こんなことしたことないから、どうしようかなと。 >>5 なるほど。そうやればよいですね。 試してみよう。
- 8 名前:デフォルトの名無しさん [2007/12/08(土) 17:07:51 ]
- Hoge()というアンマネージドクラスが既にあり、これをマネージ環境で使うことを考えています。
このとき、 Hoge *hoge0 = new Hoge(); Hoge *hoge1 = new Hoge(); Hoge *hoge2 = new Hoge(); ・・・ というのを Hoge *hoge[10]; hoge[0] = new Hoge(); hoge[1] = new Hoge(); hoge[2] = new Hoge(); ・・・ のよう配列にするにはどうしたらよいでしょう? (マネージ環境だと Hoge *hoge[10]; の時点でCLI配列使え!って怒られてしまうんですよね・・・)
- 9 名前:8 [2007/12/08(土) 17:09:13 ]
- >>8
環境書き忘れました・・・おわっとる・・・ Visual Studio 2005でC++/CLIです。 よろしくお願いいたします。
- 10 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 17:11:21 ]
- VC++2005でのクラスの宣言で質問です。
まず初めにメンバ変数を宣言しました。 class hoge{ int m_n; }; 次にコンストラクタを書いて初期化してみました。 class hoge{ int m_n; public: hoge(int n):m_n(n){}; }; そしてメンバ変数を const にした段階でエラーが出ました。 class hoge{ const int m_n; public: hoge(int n):m_n(n){}; }; エラーメッセージは warning C4512: 'hoge' : 代入演算子を生成できません。 です。 今はまだ型宣言だけなので代入どころかインスタンスすらありません。 これはどういう意味なのでしょうか?
- 11 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 17:27:40 ]
- >>10
エラーじゃなくて警告(warning)ね それはそうとVC++2005EEで試したけど、警告でないけどなあ
- 12 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 17:31:56 ]
- うちのVC2005だとwarningは出ないよ。
上のコードをコピーして、int main(){ return 0;}を下に付けただけ。
- 13 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 17:37:26 ]
- >>8
C++/CLIは専用スレの方がいいんじゃない? 発展系とはいえ別言語なんだし。
- 14 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 17:39:30 ]
- C4512は警告レベル4なので、/W4つけてコンパイルすると出るね
代入演算子を定義すれば出なくなる 生成できませんって表現が良くわからないが、暗黙の代入演算子を生成できないってことなのかな
- 15 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 17:44:57 ]
- class hoge{
const int m_n; public: hoge(int n):m_n(n){}; private: void operator=(const hoge &); }; 定義どころか宣言だけで出なくなるね。 これでインスタンスも生成できたしリンクエラーも出ない。 ってことは何処からも参照されていないってことで... ん〜、なんで警告が出るんだろ?
- 16 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 17:49:51 ]
- デフォルトの代入演算子は各メンバのoperator=を呼ぶが、メンバがconstなので代入できない。
- 17 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 17:55:42 ]
- 文字通りデフォルトの代入を定義できないという警告だろ。
当然実体化したインスタンスを代入しようとすればコンパイルエラーにはなるが、 代入演算子もインタフェースの一部だから後で宣言したヘッダに 簡単には手を入れられないということも有り得る。 必ずしも代入不可能というのがクラス設計者の意図ではないかもしれないし、 そういう時のうっかり忘れ防止としては宣言の時点で警告が出たほうが良いだろう。
- 18 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 17:56:44 ]
- >>13
確かにその通りですね。 C++/CLIスレの方に移動します。 ありがとうございました。
- 19 名前:デフォルトの名無しさん [2007/12/08(土) 22:29:22 ]
- ここで聞いていいのかわからないんですけど、
C とPerl の対照表みたいなページってありませんか?
- 20 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 22:37:39 ]
- ローカル関数内で使う、ローカル変数の初期化を、プロトタイプで宣言しなかった場合(ヘッダーファイル内で宣言しないってこと)
即ちコンストラクタの初期化子やデフォルトコンストラクタの関数内で初期化せずに ローカル関数内でコンストラクタの初期化子で初期化したように、初期化する方法はありませんか? 多分日本語でOKといわれそうですがww理解できる方お願いします。
- 21 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 22:48:13 ]
- >>20 日本語でおk
- 22 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 23:07:46 ]
- >>20
日本語でおk コンストラクタ、と言っているんだからC++だと思うけど まず根本的にローカル関数が定義出来ない。gccとかは出来た気もする。 ローカル関数って関数内で定義する関数よ? 次に、ローカル変数はプロトタイプ宣言に出てこない。 仮引数のことか? >即ちコンストラクタの初期化子や・・・ 全然「即ち」になってない
- 23 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 23:09:11 ]
- ローカルをメンバに置き換えるんだ!
- 24 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 23:22:30 ]
- 定義と宣言の違いがよくわからないのですが、どう違うのですか?
- 25 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 23:37:06 ]
- >>24
定義は宣言の一種だから、「違い」って言う時点でおかしな話。
- 26 名前:24 mailto:sage [2007/12/08(土) 23:42:09 ]
- int a; <= これはどっち?
int main(){ int b; <= これはどっち? }
- 27 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 23:44:07 ]
- >>26
どっちも定義、且つ宣言。
- 28 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 23:45:41 ]
- >>26
宣言と実体化の問題を言いたいの? int ならそこで実体化してるから わかりにくい。例えば配列とかなら int a[]; とか int *a; とかしたら、実体化はさらにしなきゃいかん。
- 29 名前:24 mailto:sage [2007/12/08(土) 23:47:01 ]
- www.geocities.jp/ky_webid/c/004.html
を見ると、宣言みたいな感じなんですが
- 30 名前:24 mailto:sage [2007/12/08(土) 23:52:07 ]
- 知りたいのは、本を読んで、定義と宣言という言葉がが出てくるのですが、
イマイチ、両者をどのように区別しているのか理解できないからです。
- 31 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:00:44 ]
- 宣言は変数で、定義は構造体とかtypedefだろ?
- 32 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:14:56 ]
- C++におけるキャストの概念がいまいち理解できないんですが、
dynamic_cast以外は、 C形式のキャストを用途ごとに分けて機能を分割することで不正と思われるキャストをコンパイル時に弾けるようにしよう、 てことで合ってますか?
- 33 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:16:05 ]
- >>30 >>25,27
>>31 ちがうよ。
- 34 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:16:37 ]
- >>32 合ってるよ。
- 35 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:17:36 ]
- >>31
それは違うような気がする グローバル変数ではexternつけたのとかは定義でなく宣言 関数で言うところのプロトタイプ宣言と処理内容の定義の違いと考えればいいかもしれない
- 36 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:19:02 ]
- >>34
ありがとうございます ずっとそれぞれに何か特殊な機能があるんだと思ってました……
- 37 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:19:24 ]
- typedef int INT; // 宣言
extern int i; // 宣言 int i; // 定義 void func(); // 宣言 void func() { /* 〜 */ } // 定義 class A; // 宣言 // クラスAの定義 class A { void func(); // メンバ関数の宣言 }; void A::func() { /* 〜 */ } // メンバ関数の定義
- 38 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:21:24 ]
- 便乗質問だが、仮引数は定義でなく宣言になるのか?
- 39 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:23:23 ]
- >>38 うん。
- 40 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:28:44 ]
- >>39
ありがとう 要するに実体生成が伴うのが定義って感じか ということはクラスのメンバ変数は全部定義でなく宣言?
- 41 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:37:34 ]
- >>40
CとC++では、「何が定義になるのか」が違うんだよ。 >要するに実体生成が伴うのが定義って感じか これはC言語の話。 マ板の某クソスレから引っ張ってきた。 pc11.2ch.net/test/read.cgi/prog/1192703383/593 CはC99なんで、普及してるC89では若干違うのかも知れない。 スレ違いなんで、あっちで引っ張らないように。
- 42 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:45:24 ]
- 概念的には
宣言というのはコンパイラに名前の存在を知らせること。 定義というのはある名前の実体を作成すること。
- 43 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:45:41 ]
- >>41
ありがとう 何か分かったような分からないようなだが
- 44 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 00:50:15 ]
- >>43
どの辺が分からん?
- 45 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 01:03:10 ]
- >>44
いや、かたや定義の例が書いてあってかたや宣言の例が書いてあるから、 俺の貧弱な頭じゃ違いがぱっと理解できんw とりあえずメンバ変数については分かったが あと「結合指定」「型定義宣言」て言葉が分からんかった 前者はぐぐっても出てけえひんし、 後者はtypedefのことか?
- 46 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 01:18:43 ]
- >結合指定
「extern "C"」とかそういうヤツ。 >後者はtypedefのことか? それであってる。
- 47 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 01:20:42 ]
- >>46
わざわざサンクス ぐぐり不足ですた
- 48 名前:24 mailto:sage [2007/12/09(日) 01:26:42 ]
- まとめて、皆様、有難うございました。
CとC++では、意味が違うなんて。
- 49 名前:デフォルトの名無しさん [2007/12/09(日) 02:45:29 ]
- STLの使い方についての質問です。
例えばpair<int, string>の要素を持つvector Vecがあったとき、 iteratorでintがiXYであった時に、pairの片割れのstringを返す場合、 下のコードではコンパイルエラーが出ます。 vector<pair< int, string > >::iterator it; for ( it = Vec.begin(); it != Vec.end(); ++it ) { if( *it->first == iXY ) return *it->second; } return NULL; iteratorで間接参照は、*をつけるといろんなところに書いてあったので 上のようにしたのですが、*を取ると、正常に動きました。 でもなんで*を取るのかがわかりません。だれかおしえてください。
- 50 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 02:54:00 ]
- iteratorは要素を指すポインタのようなモノだと考えれば、
ポインタに*をつけると実体pair<>を指すことになる。 んで、pairに->演算子はオーバーロードされてないからエラーになるわけだ。 大体あってる?
- 51 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 02:55:38 ]
- (*it).second
it->second こういうことじゃなくて?
- 52 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 02:59:32 ]
- この場合*をつけると演算子の優先順位の関係で
if( *(it->first) == iXY ) return *(it->second); と同じになり、イテレータの参照剥がしではなく、firstおよびsecondメンバつまりint,stringの参照剥がしになる。 int,stringはポインタやイテレータではないのでエラー。 *を使いたければ、こう if( (*it).first) == iXY ) return (*it).second);
- 53 名前:50 mailto:sage [2007/12/09(日) 03:01:00 ]
- 優先順位間違ってた/(^o^)\
- 54 名前:49 [2007/12/09(日) 03:15:00 ]
- みなさん、ありがとう!
もっと精進しまっす!
- 55 名前:デフォルトの名無しさん [2007/12/09(日) 04:40:48 ]
- vector<string> str; str.resize(10000);
はメモリは少しも食わないんでしょうか? stringって作った時点ではメモリー確保しないですから、配列でも一緒ですか?
- 56 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 04:57:19 ]
- >>55
string自身にだってサイズはあるよ。 俺の環境だと、string型は28バイトもある。
- 57 名前:デフォルトの名無しさん [2007/12/09(日) 05:05:11 ]
- サンクス
- 58 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 09:43:27 ]
- スレ違うかもしれないがfloat除算を間違えるって言うのは、間違えていた
アクセスできない配列にアクセスしていただけだった
- 59 名前:58 mailto:sage [2007/12/09(日) 10:09:23 ]
- floatのエラーではなくてvectorのバク(解放のタイミング)だった
何度も配列を短時間で生成繰り返したとき、前のが解放される前に次の確保がくると駄目らしい グローバルに一度確保にしたら良くなった
- 60 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 10:10:31 ]
- >>59
何の話かわからんがkwsk
- 61 名前:58 mailto:sage [2007/12/09(日) 10:14:33 ]
- こんな感じのやつ 再現するかは不明 確保するサイズを大きくするほどしやすい可能性あり
double fnc(void) { vector <double> x(100000,1); return x[0]; } main(){ double sum=0; for(i=0;i<10000;i++)sum+=fnc(); cout<<sum; }
- 62 名前:58 mailto:sage [2007/12/09(日) 10:16:05 ]
- 解放が追いつかず、次から次へと確保が来ると駄目らしい
- 63 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 10:18:58 ]
- >>58
環境は?普通は seg fault とかエラーで落ちると思うんだけど。 そうじゃなければ vector の bug ということなのかな。
- 64 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 10:28:37 ]
- >>61
手元のVC2005EE, bcc5.82, gcc3.4.4で問題なかった。 >>58の環境が知りたい。
- 65 名前:58 mailto:sage [2007/12/09(日) 10:34:04 ]
- bcc5.5.1です
あと確保する数は、実際には違います #define N 2678400 として vector<int> date(N,0); vector<double> x(N,0); をサブルーチンで何度か確保して dateとxの前半(1/3くらい)をアクセスしてリターンすると毎回違う回数で落ちます
- 66 名前:58 mailto:sage [2007/12/09(日) 10:35:31 ]
- いま計算したところ一回ごとに確保する容量は32M程度です
- 67 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 10:38:51 ]
- 「落ちる」で済ませる奴は信用できない。
- 68 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 10:39:22 ]
- >>66
> dateとxの前半(1/3くらい)をアクセスして ↑このへんにバグがあるかもしれんので最小限のソースをくれるとありがたい。 あと、落ちるというのは例外を吐くのか、問答無用で落ちるのかも知りたい。
- 69 名前:58 mailto:sage [2007/12/09(日) 10:46:17 ]
- >>68
グローバルに定義して何度も繰り返して使ったら全く落ちなくなりましたよ
- 70 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 10:48:00 ]
- >>65
「落ちる」って seg fault とかでプログラムがクラッシュするの? それだったらメモリが足りないなら正常な動きだと思う。 もしも、出力して正常に終わったように見えて違う答だというのならば大問題。
- 71 名前:58 mailto:sage [2007/12/09(日) 10:51:44 ]
- >>70
DOSプロンプトからエラーを言われ停止しますよ 終了後ごとにvectorは解放されるはずなのでメモリ不足にはならないはずですよ
- 72 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 10:53:33 ]
- >>69
そういうアドホックな対処ではなくて、もっと具体的な原因が知りたいなあと。 そもそもコンパイラ(vector)のバグと見なしてるようだけど、それも疑わしいしね。 コンパイラのバグ → ここを見た人に役立つ >>58の書いたコードのバグ → 同じ過ちを繰り返さずに済む
- 73 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 10:57:09 ]
- この時まだ>>58は知らなかった>>67が真実だということを。
- 74 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 11:00:14 ]
- >>71
>>58 の書き方だと結果が出て間違っているように読める。 最後まで走って結果が出て、違ったという場合はあったの?
- 75 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 11:02:05 ]
- 再現性のあるソースを出せば一発なのに端折って小出しにする奴の多いこと
- 76 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 11:03:55 ]
- エラーメッセージはコピペ。
コレ常識ネ。
- 77 名前:wolf ◆8VH3XAqjlU mailto:sage [2007/12/09(日) 11:31:49 ]
- >>24
>>26 int a; <= これはどっち? <--- declaration with simple-type-name int main(){ int b; <= これはどっち? <--- declaration with simple-type-name } Grammar of C++ Declarations msdn.microsoft.com/library/ja/vclang/html/_pluslang_Grammar_of_C.2b2b_.Declarations.asp?frame=true
- 78 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 11:44:47 ]
- >>26
> int a; <= これはどっち? > int b; <= これはどっち? C++ なら、どっちも定義だ。
- 79 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 12:04:27 ]
- >>77
なんだコイツ? 何が言いたいのかさっぱり分からないんだが、77はアホの子か?
- 80 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 12:07:20 ]
- >>58こないのか。残念。
- 81 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 14:54:22 ]
- VCです
class Foo { char szBuff[MAX_PATH]; ZeroMemory( szBuff, MAX_PATH ); pubulic: Foo(); ~Foo(); }; szBuffをコンストラクタの初期化子で初期化するにはどの様に書いたらいいですか?
- 82 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 15:20:07 ]
- int a; <= これはどっち?
int main(){ int b; <= これはどっち? } 両方とも宣言定義です。 略して、宣言、定義、または、宣定という人もいます。
- 83 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 15:20:46 ]
- >>81
できません。 vector にすれば初期化できます。この場合は本体の中で ZeroMemory() しても同じ結果になります。
- 84 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 15:32:20 ]
- >>83そうですか、ではあきらめます
- 85 名前:デフォルトの名無しさん mailto:sega [2007/12/09(日) 17:37:11 ]
- クラスとかはヘッダに書くと思いますが
コンパイルしてオブジェクトにしておくことはできないのでしょうか。 毎回コンパイルするのは非効率だと思います。
- 86 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 17:45:50 ]
- >>85
C/C++ ではヘッダでは定義なしの宣言だけにしておいて、対応するソースファイルで 定義を与えるという方法で重複コンパイルを避けるのが一般的。 C++ のテンプレートによってこの方法がうまく機能しにくい状況になっているので、 コンパイラによってはプリコンパイルドヘッダとか、あらかじめヘッダをコンパイルして 保存しておく機能を持っているものもある。
- 87 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 17:57:13 ]
- >>86
そのあたりの「一般的」な作法がまとめてある書籍はありますか? VC++では無い本がいいけど、独習C++とかになるんですかね?
- 88 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 19:20:51 ]
- お作法のまとめだったら Effective シリーズとかがいいんじゃないの。
- 89 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 20:43:11 ]
- >>61
ちょっと遅レスだが BCCの最新バージョンBCC5.9.2(C++Builder2007付属)では落ちない
- 90 名前:wolf ◆8VH3XAqjlU mailto:sage [2007/12/09(日) 21:11:03 ]
- >>82
Sure, the following may not be accepted in the school. Declaration: However, many declarations serve as definitions. Definition A definition provides information that allows the compiler to allocate memory for objects or generate code for functions. Object An object is an instance (a data item) of a user-defined type (a class type). C++ terms used in this book are defined in the following table: msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vclang/html/_pluslang_terms.asp
- 91 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:36:31 ]
- >>90
基地外スレにお帰りください
- 92 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:58:13 ]
- お勧めなエディタ教えて
- 93 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:59:25 ]
- c言語って数学で言うところの中括弧{}と同じ機能を持つ演算子って有る?
それとも、変数を使って一時的に値を記憶させないと駄目?
- 94 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 21:59:56 ]
- >>92
cat
- 95 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 22:00:46 ]
- >>92
すれ違い。いちおう誘導しとくけど、その聞き方じゃどこでもまともな答えは 期待できないと思われ。せめて今使ってるやつのどこが不満なのか書かないと。 【エディタ】ソース何で書いてる? 1スレ目 pc11.2ch.net/test/read.cgi/tech/1164154920/ テキストエディタをまた〜り語ろう ver.24 pc11.2ch.net/test/read.cgi/software/1194361643/
- 96 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 22:02:15 ]
- >>93
数学で言うところの中括弧ってなんだ?式の優先順位を決めるための括弧なら、 何重だろうと全部丸括弧を使うんだけど。
- 97 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 22:12:44 ]
- >>96
そうなんですか! それなら、 数学で {(5)(176) - (26)^2}{(5)(145) - (25)^2}のルートって、 C言語なら、 sqrt(((5)*(176) - (26)*(26))*((5)*(145) - (25)*(25))) でOKですか?
- 98 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 22:21:53 ]
- >>97
演算子の優先順位を調べたらわかると思うけど、 乗除算の方が加減算より優先されるので括弧を減らせるよ
- 99 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 22:24:45 ]
- >>98
なるほど! だったら、 sqrt((5*176 - 26*26)*(5*145 - 25*25)) でおkですね!
- 100 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 02:08:00 ]
- ハッシュテーブル作るときなんですけど・・・
vector< myclass >型の固定長配列を用意して、それを例えばTBL[n]として 衝突が起こったらTBL[n].resize(2)して別のデータを格納していけば実装できそうですけど 一次元に自分で登録先を見つけてくる方法より効率悪いですか? 衝突は頻繁に起こらないとします
|

|