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


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

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



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/

851 名前:デフォルトの名無しさん [2009/09/05(土) 23:43:12 ]
>>849
直交座標系と極座標系の変換を知りたいの?
もし単に回転させたいならアフィン変換すればいいだけだけど。

852 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 23:48:39 ]
>>851
よくわかりません
x座標が-0,5なので-cos(60)でいいのかと思ってやってみてもうまくいかなくて…

3次元での座標を表すときのsinθcosθというのは単に数値を入れるのとは全く別物なんでしょうか?

(0,5、1、0)の座標をsincosの座標で現したいと思ったときに(cos(60)、1、sin(0))と表してもまったく別の位置に表示されるんですけど

853 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 23:51:36 ]
sin,cosの引数はラジアン。

854 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 23:52:08 ]
sin、cosの引数は度じゃなくラジアンだから *3.14/180 しないとだめ

855 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 23:59:56 ]
ありがとうございます
わかりました

856 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:29:07 ]
こないだからC++以前に数学がわかってないやつが多いな

857 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:34:46 ]
というか、本にせよリファレンスにせよ、どっかで説明読めば
引数がラジアンだってことくらい書いてあるはず
理論に基づいて組み上げるんじゃなく
カンでプログラミングしてるんじゃないか

858 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 00:52:37 ]
普段からsmartポインタって乱用してる?
複雑な管理が必要になる部分以外は余分なコストがかかるから使わないほうがいいのかなって思ったんだけど

859 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 01:02:17 ]
RAIIとかPimplイディオムを実現するには必要不可欠だろうが



860 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 01:05:49 ]
RAIIとpimplってほんとによく出てくるなぁ。
RAIIはさておき、pimplは目の当たりにしたことがないから実感がわかない

861 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 01:06:50 ]
使わなかったところで、それと同様のコードを自分で書く羽目になるだけ、自分へコストが跳ね返ってくる。

まあ、最も単純かつ実行時の負荷が低コストでしかも標準のauto_ptrが残念な出来なのは仕方がない。
unique_ptrに期待しましょう。

862 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 01:07:24 ]
Exceptional C++を読みなせえ

863 名前:845 mailto:sage [2009/09/06(日) 01:51:30 ]
すいません
さっき教えていただいた通りにラジアンで線を引けたのですが、for文で線を何本も引いて円を書こうと思い
(sin(θ×t)、1、cos(0))
とし、tの値を少しずつ大きくしていきました。
そうするとx軸に沿って円がかけるはずだとおもうのですが45度から130度くらいまでの扇形みたいな形しかできません

まったく理由がわかりません

どなたかアドバイスをください
お願いします

864 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 01:59:23 ]
自己解決しました

865 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 02:01:44 ]
質問の文章考えてるヒマがあったらトライ&エラーやってた方が有意義じゃないか?

866 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 08:28:07 ]
>>858 乱用してるよ!!

スマポのメリット>>>>>>>>>>>>ほんのわずかなコスト


867 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 09:05:17 ]
>>858
スマポの評価はboostのスマポ、特にshared_ptrを使ってからしたほうがいい。
マジお勧め。


868 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 11:04:43 ]
確かにboostのshared_ptrはその利便性からいって鬼。
これ以上ないほどの。


869 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 11:12:58 ]
FFTで求めた実部データと虚部データから振幅スペクトルを求めるにはどうしたらいいですか?
パワースペクトルだと大きすぎるのでさけたいです



870 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 11:19:21 ]
>>869
帰れ

871 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 12:08:14 ]
>>869
mag=hypot(real,image)


872 名前:デフォルトの名無しさん [2009/09/06(日) 12:19:02 ]
>>870だが断る

873 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 14:29:57 ]
グローバル変数を使う時は、関数プロトタイプ宣言より前じゃないとダメなんでしょうか?


874 名前:873 mailto:sage [2009/09/06(日) 14:30:42 ]
日本語おかしかったです、すいません
グローバル変数を使う時は、関数プロトタイプ宣言より前にグローバル変数の宣言をしないとダメなんでしょうか?

875 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 14:32:20 ]
グローバル変数の宣言と関数プロトタイプは何の関係もなくね?

876 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 14:33:31 ]
そうでしたか、ありがとうございます

877 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 15:45:55 ]
かかわるプロジェクトでは必ず三項演算子は目の敵になってるんですがgotoみたいな存在なんですか?

878 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 15:48:40 ]
そんなことないよ。
記述の仕方を統一したかっただけじゃない?

879 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 15:51:37 ]
行数稼げないからって理由だったら嫌だなw



880 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 15:54:15 ]
>>877
なんでだろね。
どうも三項演算子を理解できないレベルに合わせろってことらしいんだが、まじかね。

881 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 16:26:07 ]
理解なんて数秒で済むと思うんだけど

古いコンパイラで条件演算子にバグがあって禁止されていた事はあった

882 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 16:58:04 ]
>>880

構造化プログラミングから逸脱する場合には不可ってことだと
思うんだけど、本質が理解されないまま全部NGになってること
はよくあるね。

参考演算子そのものの理解は当然だれでもできる。


883 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:01:43 ]
ゴメン、「三項」ね。


884 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:02:09 ]
三項演算子は()を下手に省略するとアレ?って挙動になってバグ取り高い壁になる

885 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:10:05 ]
>>882
構造化プログラミング?
逸脱する場合としない場合kwsk。
逸脱するというのであればすべて逸脱では。

886 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:14:19 ]
どんな用途か知らんが、三項演算子は特に問題ないと思うがw

887 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:17:26 ]
>>882
三項演算子どころか、ポインタもろくに理解せずに仕事してるやつ多数。
それが現実。

888 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:23:23 ]
int x = 0;
int y = 0;
bool b = なにかを代入;
//逸脱しないとき
if (b)
{
x = 123;
}
else
{
x = 456;
}
これは、x = b ? 123 : 456; とできるけど、bの意味する内容とか局所性によってはまぁ許容かな…。

//逸脱するとき
if (b)
{
x = 123;
y = 234;
}
else
{
x = 456;
y = 789;
}

こっちは
x = b ? 123 : 456;
y = b ? 234 : 789;
で書けるけど、b の真偽値に応じた代入処理のセットだと言うことが分からない。
elseifの節が後で現れるともう保守性までNG。>>885 の指摘通り、逸脱するかと
言えば全部逸脱だと思う。ちなみにオレは三項演算子は、ほぼNGにしたい派。

889 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:27:37 ]
>>888
そもそもそんなコード書かないだろというか例が悪すぎるw



890 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:32:20 ]
何とも都合のいい主観判断をするものだ

891 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:33:21 ]
>>888
なんでNGかkwsk。
2つ目みたいな書き方はめったにしないと思うが、その最初の例でNGにしたい理由は?

892 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:36:16 ]
class HogeString
{
private:
  char* str;
public:
  bool isEmpty()const{ return (name == NULL) ? true : false; }
  // これをifで書いたら
  bool isEmpty()const{
    if(name == NULL){
      return true;
    }
    return false;
  }
};

ifだと冗長的な感じがする。こういうのは三項演算子でも良いと思うんだけどな。

893 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:38:30 ]
return name == NULL;

894 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:41:46 ]
ですよねぇ〜。書いた後で気づいたわ。

895 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 17:43:47 ]
ワロタ

896 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 18:54:01 ]
string, int, int, int の4つのデータをまとめて扱いたいのですが、
mapだと2つ以上の値のセットを扱うとエラーが出てしまいました。
こういう2つ以上の値のセットを扱うためのコンテナってありますか?

897 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 18:56:27 ]
keyとなるものだけを残して他の3つは構造体かクラスにすれば良いじゃん。

898 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 20:36:57 ]
namespaceってプロジェクトにひとつぐらいで十分?もっと細かく分けたほうが良いかな

899 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 20:37:19 ]
CからC++に来たけど&が参照だったりアドレスだったりして気が狂いそうです



900 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 20:39:40 ]
>>898
好き好き。
>>899
狂ってろ。

901 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 20:52:05 ]
*がポインタ宣言だったり参照はがしだったり掛け算だったりする
Cから来たなら大丈夫よ

902 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 21:07:11 ]
>>899
使い方が全然違うじゃん。
・・・それぐらい分からないと他言語でも無理だろ。

903 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 21:08:13 ]
>>898
俺は2階層ぐらいだけど。
一番大きいプロジェクトの根幹のnamespaceと、
namespace implementationとか。


904 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 21:37:13 ]
C++のSTLに含まれているstringのメンバ関数に、
find_first_not_ofというものがありますが、
この関数を
find_first_not_of("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789")
という風に使って、アルファベットと数字とアンダーバー以外の文字数が
最初に出現する文字数を調べようとしたのですが、うまく働いてくれません。
(;や+などを感知してくれません)

これはなぜでしょうか?

905 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 21:46:43 ]
>>904
とりあえずソースかけ。
話はそれから。

906 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 21:49:20 ]
>>904
codepad
ttp://codepad.org/

ここで。

907 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 21:53:17 ]
>アルファベットと数字とアンダーバー以外の文字数が最初に出現する文字数
文字数が出現する文字数ってなんだ?

908 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 22:12:22 ]
ちょっとぐらい間違ってる日本語を補正する頭もないのかお前は

909 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 22:25:16 ]
>>908
2か所間違ってるけどな。
まあなんにせよ>>906にあるところに貼ってくれるのをまとう。



910 名前:デフォルトの名無しさん [2009/09/07(月) 19:31:24 ]
CあるいはC++でSQLサーバに接続するにはどうしたらいいのでしょうか?
検索しても.NETFrameworkを使ったやり方しかなく困っています
どなたかご教授お願いします

911 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 19:32:59 ]
sage忘れすまそ('A`)

912 名前:デフォルトの名無しさん [2009/09/07(月) 19:48:12 ]
質問です。
32ビットのWindowsの場合malloc()で確保出来るメモリサイズは2Gほどだったと思いますが、
これは、1プロセスあたりの制限ですか?
1つのプログラムで、malloc()を2カ所で呼び出すと、それぞれの箇所で2G確保できるのでしょうか?


913 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 19:54:23 ]
>>910
ODBCでよければ、
ODBC C++とか、ODBC VC++で検索。

914 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 20:11:32 ]
>>912
プロセスごとに2GB

915 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 20:40:05 ]
>>912
どんだけ激しいメモリ消費なんだw

916 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 20:44:44 ]
>>914
THX
困ったなぁ・・・。ディスクアクセスしながらちびちびやるか。

>>915
48Gほどのテキストデータを木構造に展開して色々やらないといけないのよ。
う〜む、もう少しダイナミックにオンメモリでやりたかった・・・


917 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 20:45:33 ]
>>916
You, 64ビットに移行しちゃいなYO!

918 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 20:48:57 ]
BDが真っ青

919 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 20:53:13 ]
>>916
64bitしかあるまいw
どのみちそんなにメモリ詰めないだろw



920 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 20:59:40 ]
サーバ用でもない限りマザーボードの上限に引っかかるな

921 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 21:25:21 ]
>>916
アルゴリズムを検討してメモリの消費量を抑えるのが手っ取り早い。そのほうがいろいろ高速化できる。
それでも解決しないなら最後の手段として64bitOSと64bitコンパイラの採用を考える事になると思うよ。
どんなにメモリがあってもアルゴリズムを改良しないと演算時間がとてつもなくかかりそうな予感。




922 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 21:43:58 ]
48GBのテキストデータって何ぞ?
漏れのおかずフォルダでもそんなにねーぞ。

923 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 21:59:47 ]
>>922
そうか、本当に無いのか検証の必要があるな。よし、どっかにアップロードしろ。

924 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 22:00:23 ]
ゲーム作っててつまずいたので質問します
struct Test{
TEST1 b[2];
省略
}
std::list< Test > lstTest;
こうやって使ってるんですが、このTEST1の配列を動的に確保することってできますか?
リストの中にリストとかしてみたんですが、同じような動きにならなくて困ってます。(ポインタの問題?

925 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 22:10:58 ]
リストの中にリスト、大丈夫なはずだが

926 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 22:11:14 ]
64Gって、研究かな?
今は、64Gのテキストデータなんてのを普通に使うようになったのか・・
恐ろしい時代だ・・・。

927 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 22:12:01 ]
>>924
struct Test {
std::vector<TEST1> b;
};
でいいと思う。
あと解説サイトを見てlistとvectorの使い分けを覚えよう。

928 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 22:14:01 ]
list -> 知的でおしゃれな感じを出したいときに使う
vector -> スマートなやり手プログラマを演出したいときにはコレ
deque -> 研究者気取りのあなたに

929 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 23:22:48 ]
48GBとかのデータを扱うなら、クラスタ上でMPIとか使って並列プログラミングってのが筋かなあ



930 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 23:54:41 ]
buf[10] = 0xff
buf[11] = 0x32
...


int kansu(u_1 *buf){`

i = 10;
printf("test buf[i] %d", i, buf[i])


このようなプログラムで、引数で配列を渡したとき
printfでbuf[10]等の中身を見ようとしたとき、表示がおかしな値になるのですが
どうしてでしょうか?

%d, %s, %x 等もおかしかったのですが

931 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 23:55:52 ]
"test buf[%d] %d" では?

932 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 00:14:45 ]
>>931
すみません、ここに書き方間違ってました。
実際のプログラムではそうかいてます。申し訳ありません。
そう書いて、表示がおかしかたtのです


933 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 00:23:39 ]
%x

934 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 00:34:53 ]
ソースを張るなり上げるなりしてください

935 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 00:40:31 ]
u_1が何なのかわからないとなぁ

typedef unsigned char u_1;
だったらprintf()はスタック破壊してるだろうし
typedef unsigned long double u_1;
だったら表示がおかしいとかの次元じゃないし

936 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 00:47:23 ]
>>935
u_1は、unsignede char です

スタック?どの辺がおかしいのでしょうか?

937 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 01:06:55 ]
>>930
断片だけ書かれてもわからん。
おかしな値が再現するソースを見せてくれ。

938 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 01:11:54 ]
>>937
すみません、今手元にないのでそのままお見せできないんですが
下のような感じです。とはいってもさっきと一緒で分かりにくいでしょうが・・


buf[50] ;
buf[1] = 0; buf[2] =5 等代入
void kansu(buf);

void kansu(u_1 *buf){`

i = 10;
printf("test buf[%d] %d", i, buf[i])

printf以降でbuf[i]の中身を別のバッファにコピーしてるのですが、
それを確認しようと思い、printfで確認しようとしたところ
まずその確認以前にうまく表示できなかったもので・・・

939 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 01:18:12 ]
そもそも、bufの型はなんなんだ?
メモリは確保されてるのか?



940 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 01:18:36 ]
>>939
malloc関数でかくほしております

941 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 01:19:31 ]
>>939
bufは、unsigned char です

942 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 01:23:51 ]
mallocで確保するんならbuf[50]は変な気がするけどな。

943 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 01:40:27 ]
>>941
> i = 10;
> printf("test buf[%d] %d", i, buf[i])
別に表示がおかしくなることはないと思うがな。
この部分の、期待している表示と実際の表示を書いてくれ。

944 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 07:33:43 ]
>>943
期待しているのは、buf[i]に代入した値が表示したいのですが、
全く関係ない数字が表示されてしまいます。4桁とか

945 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 07:47:07 ]
部分だけじゃ、どこがおかしいかわかんねえよw

946 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 08:04:01 ]
いくら間違っても4桁になるのはありえなさそうなんだが。。


947 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 08:31:55 ]
>>938
まだコードが断片すぎる。コンパイルできるぐらいのまとまったものが
ないと他の人には問題は発見できないよ。



948 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 09:21:13 ]
printf("%d", (unsigned char) 0xff)が何を表示されるのかって問題に帰結するのかな?
それだったら255だ。これがもしprintf("%d", (char) 0xff)ならば、-1かもしれないが。
それ以外の結果になるというのであれば、他の何かがおかしいのだろうよ。

949 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 18:03:25 ]
fopen()でファイルを開くコストって結構かかる物なのでしょうか?
今実装してるプログラム、メモリ的な制限から探索範囲を狭めるために、ファイルを結構細分化するつもりなんですが・・・




950 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 18:15:34 ]
>>949
ベンチマーク取ればいいが、
どんだけ多くても数百個だろ?一瞬。
むしろそれを超えると、OSの最大ディスクリプタ数にひっかかる。

951 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 18:16:48 ]
>>949
まあストレージの種類によるんじゃないかな。ハードディスク上のファイルだと、
ファイルが分散しててディスクヘッドが頻繁に移動するのはハード的にきつい

952 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 18:30:14 ]
>>949
48Gテキストの人か

953 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 18:59:52 ]
頻繁にファイル開いて読み込んでってやってたらかなり遅くなるな。
一回読み込んだ内容はメモリ上にキャッシュして、キャッシュあふれたら
使用頻度低いほうから解放して…みたいな戦略は考えといたほうがいいと思うね。

954 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:04:30 ]
>>949
ファイルのオープンクローズよりも、開いたファイルでシークしたほうがはるかに軽い。

ファイルの一部分をメモリにマップする手法としてメモリマップドファイルがあるよ。
ディスクキャッシュをメモリにマップするんで大きなデーターを効率的にアクセスできる。


955 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:08:25 ]
Hoge::operator[](A,B,C);
hoge[a][b][c];
みたいなことができればいいのになんでできないんだよ

956 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:25:33 ]
>>955
それでオーバーロードを許したらambiguous多発で大変じゃないか

957 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:44:33 ]
まあ仕方ないからhoge[make_tuple(a,b,c)];
とかやってるんだけどもっとクールアンドホットなハック的テクはないわけ?

958 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:46:37 ]
>>957
プロキシーオブジェクト

959 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:53:26 ]
>>955 ちょっと工夫すればできるから。



960 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 21:02:07 ]
やろうと思えばそりゃできるけどさ
コストとか範囲チェキとか考えると[][][]・・・でできるいいほうほうが浮かばないんだよ

961 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 21:02:39 ]
>>955,958
ちとめんどいができるじゃんと思ったら
あれプロキシーオブジェクトっていうのか
初めて知った。さんくすw


962 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 21:02:51 ]
>>957
operator()じゃ駄目なのか?

963 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 21:03:31 ]
>>962
見た目がまずダサいのでアウト

964 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 21:07:57 ]
make_tupleにダサイって言われると地味に凹むな

965 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 11:35:00 ]
同意

966 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 23:13:55 ]
ある本の息抜き用の演習問題に、「++CではなくC++と名付けられた理由を考えよ」ってのがあったのですが
正解は何なのでしょうか?

967 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 23:19:55 ]
Cの互換性を保つため

968 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 23:26:45 ]
あ、なるほど。前置インクリメントだともはやCではないものを意味するってことですね。

969 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 23:49:38 ]
まあ、今適当に考えただけなんだけどねw
トンチ的な問題だろうから、たぶんそんなに的はずれでもないと思う



970 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 04:17:25 ]
へんなコストがかかるところ

971 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 11:40:42 ]
>>970
深いな。

972 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 13:58:48 ]
//beginコード1
for(int i=0; i<5; i++){
  // コード
}

int i;
for(i=0; i<5; i++){
// コード
}

C++で上か下、どちらのループの方が良い(皆さん使われている)のでしょうか?

973 名前:972 mailto:sage [2009/09/10(木) 13:59:57 ]
1行目の
//beginコード1
は間違いです、すみません

974 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 14:03:33 ]
i の中身がループの外でも意味を持つなら後者、持たないなら前者で十分。
どっちが良いとか悪いとかじゃなく。

975 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 14:35:18 ]
>>974
なるほど、ありがとうございます。

976 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 15:45:51 ]
>>966
C++ : Cを評価してからインクリメントする
++C : Cをインクリメントしてから評価する

C++ は、まずCを評価してから機能を加えたんだよ。

977 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 17:13:48 ]
baseクラスがいくつかの仮想メンバ関数を持っています(たとえば、void f1(), void f2())
f1の実装は2パターン、f2の実装も2パターンあります
subクラス側で外部ファイルを参照してそのデータからf1,f2の組み合わせを決定したいです
この場合4種類のsubクラスを作るほかやり方はありますか?

978 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 17:16:35 ]
仮想関数f1だけのクラスと仮想関数f2だけのクラスをそれぞれ作って2パターンずつ実装し、
subのf1, f2は単にそっちを呼び出す

979 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 17:17:02 ]
>>977
f1 なり f2 の中で条件分岐すればできる



980 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 17:27:46 ]
>>978
つまりこういうことでしょうか?
class hoge
{
private:
only_f1_impl *f1_;
only_f2_impl *f2_;

public:
void f1(){f1_->f1();}
void f2(){f2_->f2();}
};
メンバ変数へのアクセスで一手間かかりそうですが、よさそうなので使わせてもらいます
ありがとうございました

>>979
条件分岐は後で大変そうなのでちょっと・・・

981 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 19:56:01 ]
##ってどういう意味か教えてください

982 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:01:49 ]
そのトークンが現れる位置によって意味が異なるので一概に答えることはできない

983 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:38:19 ]
インスタンスがshared_ptr(かweak_ptr)の形でしか生成できなくすることってできる?

984 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 21:07:22 ]
>>983
コンストラクタをプライベートにして、ファクトリメソッドを書くとか。






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

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

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