- 1 名前:デフォルトの名無しさん [2008/03/30(日) 01:50:26 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.50【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1204124447/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 331 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 01:22:17 ]
- scanf("%d+%di", &x, &y);
みたいな?w
- 332 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 01:35:28 ]
- いや、入力は文字列で扱ってるんだが、
"1+2i"じゃなくて、"(1,2)"みたいに、実装してあるのは何で? って質問だと思われw
- 333 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 01:54:54 ]
- C++標準のcomplexって使ったことないんだけどそういう仕様なの?
仕様なら仕方ないが信じがたいんだがw
- 334 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 01:58:38 ]
- C++はこうだろ?
std::complex<double>(1, 3)
- 335 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 02:10:39 ]
- complexをiostreamで出力するときに、
"1+2i"じゃなくて"(1,2)"となっているのは何で? ってことだろ。
- 336 名前:335 mailto:sage [2008/04/04(金) 02:12:00 ]
- × complexをiostreamで出力するときに、
○ complexをiostreamで入出力するときに、
- 337 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 02:23:09 ]
- コピペして使えるようにじゃね?
- 338 名前:デフォルトの名無しさん [2008/04/04(金) 02:41:24 ]
- 335の人が言っているのが、こっちの意図です。でも最初の人がC言語ではサポートしていない、
というのがどういう意味だったのかはわかりました。 文字列で扱うんなら、4+5iとかでも問題ないと思ったのですが、(,)で実装してしまったし、、、 4+5iとかはちょっと面倒くさそう。
- 339 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 07:40:38 ]
- iだったりjだったりするからじゃねw
- 340 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 12:05:27 ]
- テンプレートクラス作って、
そのポインタをlistにつっこんで イテレータで走査しようとしたら怒られる //Error list<Hoge<T>*>::iterator it; expected `;' before "it" テンプレートクラスを テンプレートのままぶち込むのがいけないのか、 それとも別のところがいけないのかでいいんで教えてください
- 341 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 12:30:31 ]
- - list<Hoge<T>*>::iterator it;
+ typename list<Hoge<T>*>::iterator it;
- 342 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 12:34:55 ]
- ああ、そういうことだったのね(´・ω・`)
ありがとー
- 343 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 12:35:00 ]
- >>340
そりゃ型決まってないと無理でないか? list<Hoge<int>*>::iterator it; とかならいけると思うけど。
- 344 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 12:41:23 ]
- gccだとちゃんとエラーはいてくれるがVCだと通るから困る
- 345 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 15:28:40 ]
- を、2ページ目にも修正入ったみたいだな。
- 346 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:45:18 ]
- 教えて!!
言語を勉強したいのだが何がお勧め?? C++??Java??
- 347 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:46:17 ]
- 目的は?
趣味なら何でもいいと思うよ。
- 348 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:47:57 ]
- >>346
BASIC
- 349 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:51:06 ]
- >>347
>>348 仕事でUNIXのオペレータをしています。 言語を覚えてスキルアップしたい。と思っています。 でも色んな言語がありすぎて何を始めればいいのか 分かりません。今の時代にあっていてこれからも使っていけそうな 言語を教えて下さい。お願いします。
- 350 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:53:20 ]
- >>346
スレタイが読める程度の日本語。
- 351 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:53:45 ]
- UNIXならまずはシェルスクリプトからはじめてみては?
で、awk&sed、perl、python or rubyと進むとか。
- 352 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:57:41 ]
- C/C++のスレで訊かれたなら、やっぱりC/C++と答えるべきか
- 353 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:58:14 ]
- C#といってみる
- 354 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 16:59:02 ]
- C++では簡単に出来てJavaでやりにくい事
その逆などを教えて下さい。
- 355 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 17:03:38 ]
- その手の質問はぐぐったほうが丁寧な解説出てくるよ
ここで聞いてもすれ違いのうえ端的だったり極端すぎる答えしか返ってこないよ
- 356 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 17:15:06 ]
- 初心者のためのプログラミング言語ガイド Part7
pc11.2ch.net/test/read.cgi/tech/1200807067/
- 357 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 20:28:22 ]
- 初心者はまずこれを読んで
ポインタを理解すること builder.japan.zdnet.com/sp/c-programming-language/story/0%2C3800083430%2C20370255%2C00.htm これができない奴はC/C++いじるの辞めろ 適正が0かマイナスだ
- 358 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 20:58:48 ]
- >>94
- 359 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 21:22:45 ]
- それ1週間前のネタ
- 360 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 21:50:48 ]
- C++にポインタ排卵だろ
- 361 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 21:57:43 ]
- まあ大部分は排除できるな。
- 362 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 22:21:10 ]
- constメソッドからでもポインタ型メンバの参照先なら操作し放題とか駄目活用している
- 363 名前:238 mailto:sage [2008/04/04(金) 22:32:21 ]
- protectedでstaticな独自クラスの配列の参照の初期化で他のクラスのメンバ変数を与えたいんですが
無理ですよね・・・? もし他のクラスのstatic変数なら大丈夫でしょうか?
- 364 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 22:36:38 ]
- RTTIは実際にどういう場面で使われるんですか?
template<typename T> void hoge(const T &a) { if (typeid(a) == typeid(int)) { ... } } とかやるんですかね
- 365 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 22:37:35 ]
- クラスのインスタンス自身への参照ならいくらでも可能だと思うが、
その中のメンバ変数と言われると難しいというか、 そもそもそんな怪しい事しようとしている事にまず疑問を持たざるを得ない。
- 366 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 22:38:45 ]
- >>364
dynamic_cast も RTTI を利用してる。 typeid はあまり使う事は無いな。
- 367 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 22:54:27 ]
- dynamic_castなら、よくこういう状況で使いたくなる。
1. ライブラリの用意した基底クラスBから派生した自作クラスDを作る。 2. Dのインスタンスをライブラリに渡す。 3. ライブラリからのコールバックで2で渡したものがB型への参照・ポインタで与えられる。 この例だと結局boost::polymorphic_downcastにするんだけどね。 >>364 その例だったら特殊化で十分。
- 368 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 23:00:11 ]
- 配列の参照のスタティックなクラス変数のクラス定義外での宣言って
Hoge Piyo::(&foo)[][100]; じゃないの・・・?
- 369 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 23:05:51 ]
- とりあえずコンパイルの通るコードを頼む
- 370 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 23:09:04 ]
- >>360
多態とか
- 371 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 23:09:50 ]
- スマートポインタでいい。
- 372 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 23:58:47 ]
- でいいというか、ポインタ使えないなら、ポインタもどきを使うしかない。
クラスがメンバに参照を持つとコンテナに突っ込めなくなってしまうので、 嫌でもポインタ使わなきゃならないと思うんだけど。
- 373 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 00:07:58 ]
- 大体ポインタを理解できないならスマートポインタも理解できないかと
360は何を言いたかったのだろう
- 374 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 00:08:53 ]
- スマートポインタはアドレス演算とかやらないから
scoped_ptr くらいなら何とかなるんじゃね?
- 375 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 00:15:57 ]
- ダメな奴は、やり方が言語仕様に引っ張られる。
- 376 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 00:17:42 ]
- いやイテレータ使うならアドレス演算と大して変わらないんじゃないか
ポインタわからないようではC++できないというのは真実だと思うけど
- 377 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 01:24:51 ]
- 排卵日
- 378 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 03:16:18 ]
- メンバ変数の文字列の一部を新しい文字列として返したいんですが
どういう方法がありますか? こういうのです class Test { private: char data[256]; public: char * getStr() { char *ret = new char[3]; ret[0] = data[0]; ret[1] = data[1]; ret[2] = data[2]; return ret; } }; これを std::string str = getStr(); このように使った場合retのデリートができないので メモリリークしますよね?何かいい方法ありませんか?
- 379 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 04:35:02 ]
- const std::string getData() const { return std::string( data ); }
- 380 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 06:48:36 ]
- 終端に '\0' を追加するのも忘れずに
- 381 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 08:04:56 ]
- クラスがメンバに参照を持つとコンテナに突っ込めなくなってしまうので、
- 382 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 08:49:39 ]
- void getStr(std::string& str) const {
str.assign(data, 3); } std::string getStr() const { return std::string(data, 3); } 後者は代入する時にコピーが発生するので場合によっては効率悪いが (初期化の場合は大抵のコンパイラなら戻り値最適化してくれるので大抵コピーは発生しない)、 かといって前者は必ず変数用意しないといけない。 どっちにするか、あるいは両方用意するかはお好きなように。 まあ、string にどんなメンバがあるかくらい見とけ。 www.wakhok.ac.jp/~sumi/stl/header/string.html
- 383 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 10:43:49 ]
- >>381
参照のようなconstなメンバー変数を持つとコピーコンストラクタが書けない 一方ほとんどのコンテナはメモリ確保を自動でするからコピーが発生する 常識だと思ってたんだけどどこかおかしいのか
- 384 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 10:53:24 ]
- デフォルトコンストラクタが書けないと言った方が正しいか
- 385 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 11:06:11 ]
- コピコンは書けるだろ?
書けないのは代入演算子。
- 386 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 12:09:51 ]
- 終了文字の\0って入れなきゃいけないんでしょうか。
サンプルで\0を使っているコードを\0消しても正常に動作するんですが。
- 387 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 12:14:40 ]
- BCCで「異なる 〜型へのポインタが混在している」って出るんですが、
これってどうすれば解決できるんでしょう? 箇所は vsprintf(unsigned char*,const char*,va_list); って使ってるところなんですが、unsignedのポインタからsignedのポインタにはキャストできないって言われたし・・・
- 388 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 12:14:41 ]
- >>386
コードによる。サンプル晒せ。 実はどこかで\0が付いているだけかもしれない。
- 389 名前:386 mailto:sage [2008/04/05(土) 12:28:09 ]
- >>388
これです。 int CreateSave() { HANDLE hFile; SYSTEMTIME st; TCHAR szTime[128]; TCHAR *lpszBuf; DWORD dwAccBytes; DWORD dwSize = 0L; HGLOBAL hMem; DWORD dwLen; GetLocalTime(&st); wsprintf(szTime,_T("\r\nファイル作成時: %d年%02d月%02d日%02d時%02d分%02d秒"), st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond); dwLen = (DWORD)lstrlen(szTime);
- 390 名前:386 mailto:sage [2008/04/05(土) 12:28:48 ]
- 続き
hFile = CreateFile(_T("ファイルログ.txt"),GENERIC_READ, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); dwSize = GetFileSize(hFile, NULL) + dwLen; hMem = GlobalAlloc(GHND, sizeof(TCHAR) * dwSize + 1); lpszBuf = (TCHAR*)GlobalLock(hMem); ReadFile(hFile, lpszBuf, dwSize, &dwAccBytes, NULL); CloseHandle(hFile); lstrcat(lpszBuf, szTime); lpszBuf[dwSize] = '\0'; hFile = CreateFile(_T("ファイルログ.txt"), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); WriteFile(hFile, lpszBuf, (DWORD)lstrlen(lpszBuf), &dwAccBytes, NULL); CloseHandle(hFile); GlobalUnlock(hMem); GlobalFree(hMem); return -1; }
- 391 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 12:30:09 ]
- >>387
(const signed char *)にキャスト
- 392 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 12:50:12 ]
- >>390
よく読んでないけどstrcat(lpszBuf, szTime);この時点で¥0がついてると思われ
- 393 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 12:58:53 ]
- >>391
constってことは第2引数にですよね?やったら同じエラーが2個に増えたんですけど・・・
- 394 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 12:59:59 ]
- constを破るキャストがあるんですが、あれがあったらconstの意味なくないですか?
- 395 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 13:04:11 ]
- constは破るためにある
だから const const charがあるだろ
- 396 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 14:33:43 ]
- >>390
lpszBuf = (TCHAR*)GlobalLock(hMem); ReadFile(hFile, lpszBuf, dwSize, &dwAccBytes, NULL); CloseHandle(hFile); lstrcat(lpszBuf, szTime); lpszBuf[dwSize] = '\0'; このあたりか。 何か無茶苦茶危険なコードに見えるんだけど。 hMem = GlobalAlloc(GHND, sizeof(TCHAR) * dwSize + 1); ← dwSize 文字分のメモリを確保してるつもりのようだが、+1 の位置がおかしい(TCHAR が2バイトの時に領域が足りない) lpszBuf = (TCHAR*)GlobalLock(hMem); ReadFile(hFile, lpszBuf, dwSize, &dwAccBytes, NULL); ← dwSize 読み込む CloseHandle(hFile); lstrcat(lpszBuf, szTime); ← '\0' を付けないまま lstrcat は危険というか、szTime の文字数分領域がさらに必要なんだけどその領域を確保すらしていない lpszBuf[dwSize] = '\0'; ← lstrcat の前に行う
- 397 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 14:35:01 ]
- しかも、lpszBuf[dwSize] = '\0'; じゃなくて lpszBuf[dwAccBytes] = '\0'; だな。
- 398 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 14:41:08 ]
- Unicodeビルドかどうかで、ファイルの文字コードまで
影響を受けるというのは良くない場合のほうが多いと思うけど、 それはいいのか?
- 399 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 15:57:43 ]
- 何もひねらずに考えるとこうですが
if( n % 2 ) printf( "奇数です\n" ); else printf( "偶数です\n" ); 奇数か偶数か調べるもっともスマートなコードってどんなんですかね?
- 400 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 15:59:38 ]
- int isOdd(int n){ return n % 2; }
if( isOdd(n) ) printf( "奇数です\n" ); else printf( "偶数です\n" );
- 401 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 16:00:21 ]
- スマートってのが読みやすいって意味ならそれでいいんじゃね?
スマートが短いって意味なら、いろいろあるだろうけど。
- 402 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 16:00:43 ]
- inline bool isOdd(int n) { return n % 2 != 0; }
- 403 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 16:07:03 ]
- 下位1bitでも調べればいいんじゃね
スマートといえるかわからんけど
- 404 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 16:08:36 ]
- 最下位ビット調べて0なら偶数
- 405 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 16:09:05 ]
- かぶった><
- 406 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 16:10:52 ]
- この程度なら最適化されないのかな?
- 407 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 16:23:00 ]
- まともなコンパイラならするよ。
- 408 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 17:00:52 ]
- std::string のfind()とfind_first_of()の違いって何ですか?
どちらも最初の位置を返すと思うんですが
- 409 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 17:04:02 ]
- findはコンテナから特定の要素を見つける。
find_first_ofはコンテナから特定のコンテナの要素を見つける。
- 410 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 17:21:25 ]
- std::string str("hogefugapiyo");
std::string::size_type find = str.find_first_of("abc"); "abc"のうち一番最初に見つかった要素の位置を返す コンパイルが通るかは試してないのでわからん
- 411 名前:デフォルトの名無しさん mailto:age [2008/04/05(土) 18:17:44 ]
- 質問です。
以下のような二つのコードの時間を計ってみたら、 コードBの方が早く、コードAはすさまじく重くなりました。 なぜでしょうか? あと、コードAの方で、変数aをデバッグで値を見ると、 1.731e-040#DEN のように表示されます。 #DENとは何なんでしょうか? よろしくお願いします。 環境はVisual c++ 2005です。 //コードA for(int i =0; i< 5000; i++){ float a = 1.731e-040f; float b = 1.731e-040f; float the_test = a*b; } //コードB for(int i =0; i< 5000; i++){ float a = 0.1f; float b = 0.1f; float the_test = a*b; }
- 412 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 18:31:22 ]
- >>411
DENormal number (非正規化数) FPUによっては非正規化数の演算をサポートしてなくて、 これをソフトウェア側でエミュレートしてる場合がある。 すると、パフォーマンスが落ちる原因になる。
- 413 名前:じじ [2008/04/05(土) 18:57:43 ]
- MFCをつかったマルチスレッドプログラミングを仕事で要求されているの
ですが、APPクラスの子レッドとしておくのがいいのでしょうか?
- 414 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 19:17:30 ]
- enum は ビットマスクしてもいいですか?
- 415 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 20:03:42 ]
- どうやったらうまくコーディングできるんだろう?
すぱげってぃーなコードになってしまう。やっぱり慣れるしかない? 以下サンプル void binary_search(double x,double y,double *z) { int i; double c,j; j = 0.0000001; for(i=0;y*y - 2 > j;i++) { if(x*x - 2 < 0 && y*y - 2 > 0) { c = (x+y)/2; if(c*c - 2 > 0) y = c; else x = c; } binary_search(x,y,z); } *z = x; } 再帰しまくりでサーセン。でもどうやったら再帰せずに実現できるだろう? 考えるのが面倒&考えても良く分からないので再帰に走る今日この頃。
- 416 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 20:04:37 ]
- 無理に再帰を使わない方がスパゲティ化する。
- 417 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 20:11:04 ]
- 再帰はスタックで実現している。
- 418 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 20:12:39 ]
- >>415
何がしたいんだよ? binary_search(x,y,z); ↓ //binary_search(x,y,z);
- 419 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 20:21:12 ]
- バイナリサーチをバイナリデータのサーチと勘違いしてたりして
変数一文字でコメントもなくて通じると思ってるんだろうか
- 420 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 20:29:23 ]
- binary search じゃなくて bisection method の間違いだったわ
恥ずかしい。。。。鬱だしのう orz
- 421 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 22:55:05 ]
- これが日本のITレベルだ
pc11.2ch.net/test/read.cgi/prog/1191638525/43-44 くずばっかw
- 422 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 23:05:51 ]
- >>421
すまん、記事のコメントと同じ事をいいたいのか それとも、2ページ目の解説についていいたいのか さっぱり分からないから、ちゃんと説明してくれないか?
- 423 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 23:06:44 ]
- x 日本
o IBM
- 424 名前:デフォルトの名無しさん [2008/04/05(土) 23:37:02 ]
- 内部に二次元配列をもつクラスから、instance[0][0]みたいな書き方で値を取得したいと思ってます。
double operator[][](int x, int y) のような書き方は出来ないみたいなので、(コンパイル失敗しました)、 この場合どうすればいいでしょうか?
- 425 名前:デフォルトの名無しさん [2008/04/05(土) 23:47:13 ]
- 要素数が100万くらいあるvectorを半分にして50万要素のvector2つにしたいのですが、
50万番目のiteratorを取得するのにiterator++ を50万回呼ぶ以外の方法はないのでしょうか。 vector<int>::iterator it=vec.begin()+vec.size()/2 とかいう感じだと演算子+は定義されていない、とかでダメなもんで。 この辺がポインタとの違いかなとは思うのですが。
- 426 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 23:50:06 ]
- επιστημη ってこんなところにも出没するんだな
- 427 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 23:54:19 ]
- >>425
std::advance というか、+ は定義されているはずなのだが、 どんなコンパイラ使ってるの?
- 428 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 23:54:52 ]
- >>425
コンパイラ何使ってるの? vector のイテレータはランダムアクセスイテレータのはずだから、 コンパイラの実装がおかしいだろ、それは。
- 429 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 23:55:08 ]
- >>425
vector<int>::iterator it= &vec[vec.size()/2]; みたいな感じでできないか?
- 430 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 00:01:24 ]
- >>429 それはダメ。ポインタとごっちゃになってる。
- 431 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 00:08:31 ]
- PCSX2というソフトをコンパイルしたいんですがやり方がわかりません。
プログラムについての知識0です。 勉強したいとかではなくこのソフトがほしいだけです。 Microsoft Visual C++ 2008をとりあえずインストールしましたがやり方がまったくわかりません。 サルにも判るように教えてくれる方がいれば幸いです。 ttp://www.pcsx2.net/files/10490 ttp://pcsx2.svn.sourceforge.net/viewvc/pcsx2/pcsx2/GS.cpp?view=markup&pathrev=346
|

|