トップページ⇒tech
1001コメント370KB

C++相談室 part28

■ このスレッドは過去ログ倉庫に格納されています
0001v(^・^)vNGNG
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
また、テンプレートライブラリ(STL含む)に関する質問は
専用の別スレへどうぞ。

過去スレ、関連スレ、関連リンクなどはこちら>>2-13
0002v(^・^)vNGNG
■過去スレ■
 1 http://mimizun.mine.nu:81/2chlog/tech/piza.2ch.net/tech/kako/980/980175292.html
 2 http://pc.2ch.net/tech/kako/996/996640937.html
 3 http://pc.2ch.net/tech/kako/1003/10038/1003832761.html
 4 http://pc.2ch.net/tech/kako/1009/10090/1009071535.html
 5 http://pc.2ch.net/tech/kako/1014/10142/1014217496.html
 6 http://pc.2ch.net/tech/kako/1018/10184/1018454705.html
 7 http://pc.2ch.net/tech/kako/1021/10217/1021787032.html
 8 http://pc3.2ch.net/tech/kako/1025/10250/1025010364.html
 9 http://pc3.2ch.net/tech/kako/1027/10273/1027347982.html
 10 http://pc3.2ch.net/tech/kako/1029/10293/1029315669.html
 11 http://pc3.2ch.net/tech/kako/1032/10323/1032345774.html
 12 http://pc3.2ch.net/tech/kako/1035/10350/1035005882.html
 13 http://pc3.2ch.net/tech/kako/1038/10380/1038031395.html
 14 http://pc2.2ch.net/tech/kako/1041/10413/1041328679.html
 15 http://pc2.2ch.net/tech/kako/1043/10436/1043605481.html
 16 http://pc2.2ch.net/tech/kako/1045/10457/1045746245.html
 17 http://pc2.2ch.net/tech/kako/1047/10475/1047560042.html
 18 http://pc2.2ch.net/tech/kako/1050/10501/1050177746.html
 19 http://pc2.2ch.net/tech/kako/1052/10526/1052625846.html
 20 http://pc2.2ch.net/tech/kako/1055/10551/1055162298.html
 21 http://pc2.2ch.net/tech/kako/1057/10575/1057580107.html
 22 http://pc2.2ch.net/tech/kako/1060/10603/1060361082.html
 23 http://pc2.2ch.net/test/read.cgi/tech/1062690663/
 24 http://pc2.2ch.net/test/read.cgi/tech/1066546387/
 25 http://pc2.2ch.net/test/read.cgi/tech/1067949669/
 26 http://pc2.2ch.net/test/read.cgi/tech/1070164402/
 27 http://pc2.2ch.net/test/read.cgi/tech/1074454641/
0003v(^・^)vNGNG
■基本■
[C++ FAQ]
 http://www.parashift.com/c++-faq-lite/
 http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
  Cとその仕様を比較しながらの解説なので分かりやすい。
  ***** 質問の前に必ずこの二つに目を通してください *****

[禿 Stroustrup]
 http://www.research.att.com/~bs/
[C++ International Standard]
 http://www.kuzbass.ru/docs/isocpp/
 http://www.kuzbass.ru/docs/ansi_iso_iec_14882_1998.pdf
 http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=38110&ICS1=35&ICS2=60&ICS3=
[JTC1/SC22/WG21 - C++]
 http://std.dkuug.dk/jtc1/sc22/wg21/

[C/C++ Users Journal]
 http://www.cuj.com/
[cppll (ML)]
 http://www.trickpalace.net/cppll/ (日本語)
0004v(^・^)vNGNG
■Books■
amazon.com C,C++関連書籍
 http://www.amazon.com/exec/obidos/tg/browse/-/3956/ref=br_bx_c_1_3/

The C++ Programming Language
 http://www.amazon.com/exec/obidos/ASIN/0201700735/
 http://www.amazon.co.jp/exec/obidos/ASIN/475611895X/ (翻訳)
C++ Primer (3rd Edition)
 http://www.amazon.com/exec/obidos/ASIN/0201824701/
 http://www.amazon.co.jp/exec/obidos/ASIN/4756140068/ (翻訳)
The C++ Standard Library
 http://www.amazon.com/exec/obidos/ASIN/0201379260/
 http://www.amazon.co.jp/exec/obidos/ASIN/4756137156/ (翻訳)
Effective C++
 http://www.amazon.com/exec/obidos/ASIN/0201924889/
 http://www.amazon.co.jp/exec/obidos/ASIN/4756118089/ (翻訳)
More Effective C++
 http://www.amazon.com/exec/obidos/ASIN/020163371X/
 http://www.amazon.co.jp/exec/obidos/ASIN/4756118534/ (翻訳)
Exceptional C++
 http://www.amazon.com/exec/obidos/ASIN/0201615622/
 http://www.amazon.co.jp/exec/obidos/ASIN/4894712709/ (翻訳)
More Exceptional C++
 http://www.amazon.com/exec/obidos/ASIN/020170434X/
Effective STL
 http://www.amazon.com/exec/obidos/ASIN/0201749629/
 http://www.amazon.co.jp/exec/obidos/ASIN/4894714108/ (翻訳)
Modern C++ Design
 http://www.amazon.com/exec/obidos/ASIN/0201704315/
 http://www.amazon.co.jp/exec/obidos/ASIN/4894714353/ (翻訳)
C++ Templates
 http://www.amazon.com/exec/obidos/ASIN/0201734842/
0005v(^・^)vNGNG
■Libraries■
[Boost]
 Boost http://www.boost.org/
 (日本語) http://user.ecc.u-tokyo.ac.jp/~s31552/wp/boost/
 (日本語) http://www.kmonos.net/alang/boost/
[STL]
 STLport http://www.stlport.org/
 SGI-STL http://www.sgi.com/tech/stl/
 STLFilt http://www.bdsoft.com/tools/stlfilt.html
 (日本語) http://www005.upp.so-net.ne.jp/episteme/html/stlprog/
 (日本語) http://www.wakhok.ac.jp/~sumi/stl/
[Loki]
 http://www.moderncppdesign.com/
 LokiPort-MSVC7 http://www.geocities.com/rani_sharoni/LokiPort.html
 LokiPort-MSVC6sp5 http://fara.cs.uni-potsdam.de/~kaufmann/?page=lokiport
[他]
 ACE http://www.cs.wustl.edu/~schmidt/
 Blitz++ http://www.oonumerics.org/blitz/
 flex++ Bison++ http://www.idiom.com/free-compilers/TOOL/BNF-15.html
[他ライブラリリンク集]
 http://www.trumphurst.com/cpplibs/cpplibs.phtml
 (日本語) http://www.kmonos.net/alang/cpp/lib.html
0006v(^・^)vNGNG
■関連スレ■
[C++】template 統合スレ]
 http://pc2.2ch.net/test/read.cgi/tech/1066493064/l50
[ぼるじょあがC/C++の宿題を片づけますYO! 19代目]
http://pc2.2ch.net/test/read.cgi/tech/1073566342/l50
[初心者にVisual C++を教えるスレ★ Part9]
http://pc2.2ch.net/test/read.cgi/tech/1068983609/l50
[■ VisualC++(MFC限定)相談室 MFC10.dll■]
http://pc2.2ch.net/test/read.cgi/tech/1074104008/l50
[ATL 相談室]
 http://pc2.2ch.net/test/read.cgi/tech/1029029882/l50
[C/C++でのWindowsPrograming議論スレ(質問お断り)]
 http://pc2.2ch.net/test/read.cgi/tech/1049790146/l50
[COMの世界を斬る!]
 http://pc2.2ch.net/test/read.cgi/tech/981823340/l50
[managed C++ やろうぜ!!]
 http://pc2.2ch.net/test/read.cgi/tech/1014486422/l50
[C++Builder相談室 Part8]
http://pc2.2ch.net/test/read.cgi/tech/1070222674/l50
[タダで使えるBorland C++ Part3]
http://pc2.2ch.net/test/read.cgi/tech/1054390397/l50
[Borland C++ BuilderX]
 http://pc2.2ch.net/test/read.cgi/tech/1065260556/l50
[Code of the Nerds" Digital Mars C/C++]
 http://pc2.2ch.net/test/read.cgi/tech/1044210976/l50
[GCCについて part3]
http://pc2.2ch.net/test/read.cgi/tech/1072484422/l50
[OpenWatcom C++]
 http://pc2.2ch.net/test/read.cgi/tech/1033433728/l50
[タダで最強!フリーC/C++コンパイラ]
 http://pc2.2ch.net/test/read.cgi/tech/1035882599/l50
0007デフォルトの名無しさんNGNG
こんなもんかにゃ〜
後何かあったら付け足してください。
0008デフォルトの名無しさんNGNG
>>1
乙curry
0009デフォルトの名無しさんNGNG
>>1
乙!
0010デフォルトの名無しさんNGNG
すみません、質問させて下さい。
CDでのRAWに対応するものをDVDで引き出すコマンドってありますでしょうか。
0011デフォルトの名無しさんNGNG
>>10
スレ違い
0012デフォルトの名無しさんNGNG
STLつかうと一気に実行ファイルサイズが10倍に?!
0013デフォルトの名無しさんNGNG
>>12
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない。
001410NGNG
>>11
大変すみませんでした。
0015デフォルトの名無しさんNGNG
>>13
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
0016デフォルトの名無しさんNGNG
さすがに飽きたぞこの伝統芸能
0017デフォルトの名無しさんNGNG
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいのでちゅか?
0018デフォルトの名無しさんNGNG
>>18
(前略)(中略)(後略)
0019デフォルトの名無しさんNGNG
そんなエサで俺様がクマ――!! (AA ry
0020デフォルトの名無しさんNGNG
ム板の地鎮祭?
0021デフォルトの名無しさんNGNG
iostream関連でおすすめの日本語サイトあったら教えて下さい
0022デフォルトの名無しさんNGNG
>>21

海外サイトの翻訳だけど、iostreamだけでなくSTLのリファレンスもある。
ttp://www.shibu.jp:8080/cppreference/index.html

0023デフォルトの名無しさんNGNG
>>1
乙
0024デフォルトの名無しさんNGNG
検索でたまにひっかかるRogue Waveのドキュメントはわりと参考になる。
WWWで公開されてていいものかどうかは知らんが。
0025デフォルトの名無しさんNGNG
>>22
ttp://jbbs.shitaraba.com/bbs/read.cgi/computer/5651/1076858362/14
>引っ越しが完了したらttp://www.shibu.jp/cppreference/になります。

だそうです。
0026デフォルトの名無しさんNGNG
前スレのレス数が1002って表示されてるんだけど、開いてみるとふつうに1001で終わってる。
これ、どういうこと?
0027デフォルトの名無しさんNGNG
当方、以下のコードが通りません。どこが悪いかご指摘願います。
Metrowerks CodeWarrior 8.2 Pro for Winを使っております。

(hello.cpp)
class hoge
{
public:
    hoge();
    ~hoge();
private:
    struct impl* pimpl_;
};
struct hoge::impl{};
hoge::hoge() : pimpl_(new impl){}
hoge::~hoge(){delete pimpl_;}
int main()
{
    hoge hage;
    return 0;
}
(メッセージ)
エラー: 宣言シンタックスエラー
hello.cpp 行: 9 struct hoge::impl{};
エラー: 宣言シンタックスエラー
hello.cpp 行: 10 hoge::hoge() : pimpl_(new impl){}
警告: 不完全な struct/union/class 'impl' の使い方が不当です。
hello.cpp 行: 11 hoge::~hoge(){delete pimpl_;}

ちなみに
struct impl;
impl* pimpl_;
とあらかじめ宣言すれば通ります。
0028デフォルトの名無しさんNGNG
>>27
'struct impl'の形はelaborated-type-specifierといって、でてくる文脈によって働きが微妙に異なる。
struct impl;
とかくと、そのスコープでimplが宣言され、
struct impl* pimpl_;
とかくと、「そのスコープを含む、最も内側の、非クラス、且つ、非関数宣言の」スコープ(この場合はグローバル名前空間)
でimplが宣言されたことになる。
詳しくは規格の3.3.1の5を参照すべし
002928NGNG
訂正
誤:とかくと、そのスコープでimplが宣言され、
正:とかくと、その宣言を含むスコープでimplが宣言され、

誤:とかくと、「そのスコープを含む、最も内側の、...
正:とかくと、「その宣言を含む、最も内側の、...
0030デフォルトの名無しさんNGNG
こんな怪しい仕様、根拠がさっぱりわかりません。
003126NGNG
>>28
レスありがとうございます。ご指示のありました規格書を読みましたところ、
ご指摘の通り、この場合struct implはグローバル空間に宣言されていて、
struct hoge::impl〜のhoge::を削除することによってコンパイルすることが
できました。
しかしながら、一つの疑問が増えます。前掲のコードはExceptional C++(訳)の
Pimplイディオムに必要な部分だけを取り出してきたものと認識して
おります。私の認識がが間違っているのでしょうか。それとも前掲の
書籍のサンプルコードが間違っているのでしょうか。どなたか更にご指摘願います。
003231NGNG
すいません、私は>>27でした。
0033デフォルトの名無しさんNGNG
>>31
本は持ってないけど、
> struct hoge::impl{};
これを
struct impl{};
こうしてあった、とか?
003427NGNG
>>33
少なくとも手持ちの本ではしっかりhoge::に当たる部分が書かれています。
(項目27に1回,30に2回)和訳の際の誤植とか…結構他にもありますし…
0035デフォルトの名無しさんNGNG
>>34
項目27は「先行宣言してあるクラスへの」と書いてあるから
struct impl; は省略されていると解釈したほうがいいんじゃないだろうか。

しかし、項目30とか見ると、Sutterタンのサボりやね。
0036デフォルトの名無しさんNGNG
質問おねがいします。
よくC++にはガベージコレクション(GC)がないのが欠点(?)
とか言われますが、自分的には数年C++を使ってきて
スマートポインタで十分なのですが、それでもGCが必要という
のには何か理由があるのでしょうか?
0037デフォルトの名無しさんNGNG
すまぽすらろくに使えない人が多くてねぇ・・・
0038デフォルトの名無しさんNGNG
STLもろくにかじらずに入門本だけ見てGC無いといってるか、
標準には使いづらいauto_ptrしかないからそのことをいってるんだと思われ。
shared_ptrとかそのうち標準になるんだろうね。

制御できないGCなんていくらあっても屑なんだが。
0039デフォルトの名無しさんNGNG
参照カウント型のスマポぐらい C++ Templates 読んで自作しろ。
004027NGNG
レスを下さった皆さん、ありがとうございました。恐らくご指摘の通り、
Sutterさんがサボったのだろうと思います。これからはきがねなく先行宣言
しようと思います。重ね重ねありがとうございました。
004121NGNG
>>22
>>25
遅レスで申し訳ありませんが、ありがとうございます。
0042デフォルトの名無しさんNGNG
>39
成熟させるのが面倒。
004336NGNG
スマートポインタと書いておきながらstd::auto_ptrを
使っておりました(TT
もう一度勉強してきますです。
ありがとうございました。
0044rNGNG
ガーベジコレクションがあったら、
スレッド間のデータの受け渡しが簡単になるよ。
0045デフォルトの名無しさんNGNG
ハァ?
0046デフォルトの名無しさんNGNG
>>44 そんな話聞いたことないので、詳細きぼん。
0047デフォルトの名無しさんNGNG
>>45,46
データオブジェクトをのやり取りにキューを使用したてスレッド間通信する場合、
所有権があいまいになるからGCがあれば楽だといいたいのでは?
まあ、別にGCなくても実装簡単だけど。(それともJ*V*儲の戯言か?

>>36
ポイントされるオブジェクトの寿命によるんじゃないの?
リソースオブジェクトみたいに寿命が長ければ、smart_ptrで十分。
っていうかそういうものをGCにしてしまうとデストラクタがいつ走るか
わからんのでかえってよくないような気がする。
寿命が短く頻繁に生成・破棄を繰り返す場合には確かにGCあれば良いかも。
しかし、そういった状況は設計時に手を打てば回避可能だとおもうし。
0048デフォルトの名無しさんNGNG
(・∀・)→(・∀・)
 ↑    ↓
(・∀・)←(・∀・)


アアアァァ━━━━━(ゞ゚Д゚)ゞ━━━━━!!!
0049デフォルトの名無しさんNGNG
>>48
循環参照のことが言いたいのかね?
0050デフォルトの名無しさんNGNG
C++ マニュアル
tp://www.cc.nao.ac.jp/fsunman/japanese/C++/
0051デフォルトの名無しさんNGNG
in_availが両方とも0しか返さないのですがどうしてでしょうか。
また、in_availってどんな風に使うのでしょうか?

ifstream file("test.txt");
cout << file.rdbuf()->in_avail() << endl; ←こいつ
file.read(buf, M);
cout << file.rdbuf()->in_avail() << endl;

レスお願いします。
0052デフォルトの名無しさんNGNG
52get
0053デフォルトの名無しさんNGNG
ファイルの存在チェックを行うには、どんな手法がよいのでしょうか?
ifstreamを使って、エラーをチェックするのが一般的なのでしょうか?
0054デフォルトの名無しさんNGNG
access(2)
0055デフォルトの名無しさんNGNG
>>53
実行してエラーになったらファイルがない。
0056デフォルトの名無しさんNGNG
VC++.NET2003なんですがネームマングリングが
日本語版と英語版で違ってたりしますか?
リンクでエラーが出るのでLIBの中身を見てみたところ
一文字だけ違ってました。
?関数名@クラス名@@QAEXI@Z
が
?関数名@クラス名@@QAEXK@Z
みたいな感じでI->KやH->Jみたいに
どこか一箇所がコード2つ分後ろにずれます。

ご教授よろしくお願いします。
0057デフォルトの名無しさんNGNG
>>56
よく知らんけどスレ違いだろう。
005856NGNG
スレ汚しすみませんVisualStudioスレの方に逝きます。
005927NGNG
Sutterさん、項目37ではちゃんと先行宣言書いてるじゃないですか!…
0060デフォルトの名無しさんNGNG
禿の本って全然初心者ようじゃないってことにやっと気づいた。
0061デフォルトの名無しさんNGNG
>>53
boost::filesystem::exists
0062デフォルトの名無しさんNGNG
>>51
test.txtは空じゃない?

ちなみにBCC5.6.4で14,278バイトのテキストを入力に取った
時の出力。

14278
3928
0063デフォルトの名無しさんNGNG
このコード、GCCだとコンパイル通るのですが、
VC++6.0だとコンパイルできないのです。
通したいのでしがなにか技ないですか?

#include <iostream>
class A { public: int a1; char *p; int a2;};
class B {public: int b1; int b2;};
union C { A aa; B bb;};
C c = { aa:{ 1, "hoge", 2 } };
C d = { bb:{ 3, 4 } };
int main(){ std::cout<< c.bb.b2 << "\n"; return 0;}
0064デフォルトの名無しさんNGNG
>>63
C99? 無理だと思う…
0065デフォルトの名無しさんNGNG
最初のメンバ以外での初期化はまずできないだろうねえ。
どうしてもというのなら
独自拡張があるかどうかVCスレあたりで聞いてみては?
0066デフォルトの名無しさんNGNG
>>63
>>65
サンクスです。
他で聞いてみます。
0067デフォルトの名無しさんNGNG
ネタねーな。ぼるじょあスレで関数オブジェクトで苦しんでるヤシ
がいるからここに誘導するか?
0068デフォルトの名無しさんNGNG
教えて君はイラネ
0069デフォルトの名無しさんNGNG
まあ俺が三枚にあげてやらぁ
0070デフォルトの名無しさんNGNG
(´-`).。oO(三枚には"開く"のではないだろうか…)
0071デフォルトの名無しさんNGNG
おろすだよ
0072デフォルトの名無しさんNGNG
>>69-71
ワロタ
0073デフォルトの名無しさんNGNG
inline int foo(int a, int b) { return a * 100 + b; }
enum { VAL1=1, VAL2=2 }
int result = foo(VAL1, VAL2);

みたいに inline 関数の実引数が定数のとき、コンパイラが
a * 100 + b を定数式と認識してくれることを期待してもいいもんですか?
0074デフォルトの名無しさんNGNG
>73
奇遇ですなぁ.漏れつい昨日これと同じことして遊んでたよ.
もっと複雑なことさせたけどね.
結論から言うと期待しても良い.
その例ではfooの呼び出しはリテラルの102に置き換えられることを期待できる.
ただし,どこまで深く定数の伝播を評価できるかはコンパイラ依存かと.
0075デフォルトの名無しさんNGNG
>>73
期待できることもあるし、できないこともある。
コンパイラにアセンブリコードを吐かせてみたまえ。
0076デフォルトの名無しさんNGNG
最適化の結果は多分定数になるだろうが、文法的に定数式である必要がある場所
(配列のサイズとか)には使えないんじゃないか?
007773NGNG
>>74-75
大変さんくすです。マクロにしようか迷ってたんですが期待できることが
分かれば満足です。アセンブリの方は分からないので済みません、勉強
しときます
007873NGNG
>>76
ごめんなさいリロード遅れました。確かに最適化で結果が
変わってしまうとなると無理かも知れませんね。
0079デフォルトの名無しさんNGNG
そもそも inline 指定にコンパイラが従う義務はないからな。
どうしてもコンパイル時に評価して欲しければというのならテンプレート使って計算させろ
0080デフォルトの名無しさんNGNG
アセンブリわかんないのに、はいたコードがどうと愚痴愚痴言うなよなー。

というか、その計算を何万回もやるんならともかく、
そこだけ取り上げてどういう風に最適化されるか考えるのは
どっちかというと無駄。初心者卒業あたりって、とにかくそうやって
一つ一つの命令を最適化しようとするけど、実際にはアルゴリズムとか
ループを見直した方がよい。20-80の法則ってやつ。

profiler使った結果、その関数の呼び出しがボトルネックだって
言うのが前提なら何も言わないけど。

ま、一番正解は>>76ってことで。

0081デフォルトの名無しさんNGNG
pimplメソッドって、クラスをデフォルトのoperator=()を使って代入すると、pimplと
いうポインタがコピーされるのだから、privateメンバ変数の隠蔽に使いたい場合には
自分でoperator=()を定義する必要がありますよね?Exceptional C++にはそういう
記述は見当たらないのですが。
0082デフォルトの名無しさんNGNG
てきとーなスマートポインタに放り込むほうが簡単。
0083デフォルトの名無しさんNGNG
>>81

Effectiveならともかく、Exceptionalはそういうレベルは当然の話題として
わざわざ触れてないんだと思う。

>>82

smart_ptr使うのとoperator=のオーバロードはぜんぜん趣旨が違う。
008482NGNG
> smart_ptr使うのとoperator=のオーバロードはぜんぜん趣旨が違う。

たとえば、
boost::scoped_ptr<impl> pimpl; // コピー禁止
boost::shared_ptr<impl> pimpl; // 参照カウンタ方式で共有
こんなふうにすると、operator=のオーバーロードは不要になると思ってる。

なんか間違ってる?
0085デフォルトの名無しさんNGNG
コピー禁止は明示的に boost::noncopyableだな
0086デフォルトの名無しさんNGNG
>>boost::shared_ptr<impl> pimpl; // 参照カウンタ方式で共有

「組み込み型のように振舞え」という原則にはずれている。
本当に共有していても動作に問題が無いとか、
ライト・オン・コピーしてくれてるんなら文句は無いが。

クラスライブラリとかで勝手にこんな実装されると混乱するのでやめてほしい。
デバッグの最中に「このクラスは代入されても実装部分は共有される」なんて
ドキュメントを見たらぶち切れると思う。

0087デフォルトの名無しさんNGNG
沸点の低い奴だ
0088デフォルトの名無しさんNGNG
みんなboostの使い方はどうやってマスターしてるの?
ソース読んでるとか?
0089デフォルトの名無しさんNGNG
>>25
そのサイトすごくいい!
0090デフォルトの名無しさんNGNG
とりあえずドキュメント読むだろ。不完全とはいえ邦訳もあるんだし。
0091デフォルトの名無しさんNGNG
>>88
STL覚えるのと似たような感じ?
てーか、どうやっても糞もねーだろ。
使って覚える、これ最強。
0092デフォルトの名無しさんNGNG
>>88
とりあえず
ttp://www.kmonos.net/alang/boost/
ここを眺めていれば使い方の概要はわかる
0093デフォルトの名無しさんNGNG
for(i=0;i<array.size;i++)
{
  cout << array[i];
}

これをアルゴリズム(for_each ?)を使って書くには
どうしたらいいのでしょうか?
0094デフォルトの名無しさんNGNG
>>93
#include <iterator>
copy( array.begin(), array.end(), ostream_iterator<T>(cout) );
Tはarrayの要素の型ね。

Boost使ってよければ
using boost::lambda;
for_each( array.begin(), array.end(), cout << _1 );
0095デフォルトの名無しさんNGNG
>>94
試してみます。ありがとうございました。
0096デフォルトの名無しさんNGNG
>>95
for_each以外に
vector<int> v;
copy(v.begin(),v.end(),ostream_iterator<int>(cout," "));

あとlambdaでの注意点。
using namespace std;using namespace boost::lambda;
for_each(v.begin(),v.end(),cout << _1 <<" ");//これは動く
/*これは動かない、少なくともbasic_ostream<char,char_traits<char> > & endl(basic_ostream<char,char_traits<char> > &)と
basic_ostream<wchar_t,char_traits<wchar_t> > & endl(basic_ostream<wchar_t,char_traits<wchar_t> > &)があるので。
*/
for_each(v.begin(),v.end(),cout << _1 << endl);
0097デフォルトの名無しさんNGNG
Boostの「使って覚える」ような本が出れば売れると思う。
0098デフォルトの名無しさんNGNG
for_each( array.begin(), array.end(), cout << _1 );

この衝撃的なコードがなぜ動くのかも疑問だけど、なにがどうlambdaなのかがもっと疑問
λってナニを意味してるの?
0099デフォルトの名無しさんNGNG
関数
0100デフォルトの名無しさんNGNG
λは ひと と ひと とが支え合ってできています
0101デフォルトの名無しさんNGNG
一瞬、ランバダって読んだよ(w
若い人は知らんか
■ このスレッドは過去ログ倉庫に格納されています