[表示 : 全て 最新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/

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