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

【C++】STL(Standard Template Library)相談室

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
関連スレなどは>>2以降で
0039デフォルトの名無しさんNGNG
ていうかその辺STLじゃないだろ
0040デフォルトの名無しさんNGNG
>>38
>>39
回答ありがとうございました!
0041デフォルトの名無しさんNGNG
>32
それよりも wstring に注目しろ
0042デフォルトの名無しさんNGNG
>>30
STLを使うと、コードが100分の1になるって本当なんですかね?
職業プログラマの告白きぼんぬ!

0043デフォルトの名無しさんNGNG
思えば俺もTurboC++1.0から始めたはずなのに・・・
この差はいったい何なんだ・・・・
0044デフォルトの名無しさんNGNG
おひる
0045デフォルトの名無しさんNGNG
>>43
「この差」って何?C++にいろいろ機能が加わった事か?標準規格が固まってから
もう6年も立ってるぞ。そろそろ覚えろや。
0046デフォルトの名無しさんNGNG
>>42
STL使わないコードがSTL使うようになると100分の1に減るのは
元のコードの99%がSTLと同等の内容で、残り1%がアプリケーションの場合。
STLの規模は全部合わせても1メガバイト程度だから、
アプリケーションのためのコードは最大で10キロバイト程度ということになる。
その程度の小規模プログラムなら増えた減ったは誤差の範囲になる。
STLのコンテナ系は数日で書ける規模だから
通常のプログラムでコードが100分の1になるのはありえない。
元のコードが冗長なゴミで埋め尽くされてるなら
STLによって100分の1に減らすこともできるかもしれないが、
それはあまりに異常な設計だから
STLを使えばコードが100分の1になるという一般論を導くことにはならない。
0047デフォルトの名無しさんNGNG
>STLのコンテナ系は数日で書ける規模だから
信じられん。
プロってすごいんだな。煽りじゃなく。
STLのアルゴリズム系についてはどうなの?
0048デフォルトの名無しさんNGNG
>47
アルゴリズムも恐らく数日で書き切れると思います.
個人的な感覚ではコンテナに比べてアルゴリズムの方がだいぶ楽だと思います.
0049デフォルトの名無しさんNGNG
車輪の再開発をするのは、あまり利口ではないな
0050デフォルトの名無しさんNGNG
C++はバッドノウハウのかたまり
だから
STLはバッドノウハウも塊
0051デフォルトの名無しさんNGNG
>>50
例えば?
0052デフォルトの名無しさんNGNG
wstringとstringのそれぞれの変換をcodecvtをつかってできるときいたのですが、
具体的な方法を、プログラムコードで教えてもらえたいのでっすが・・・
0053デフォルトの名無しさんNGNG
>STLのコンテナ系は数日で書ける規模だから

なわけないだろ。
0054デフォルトの名無しさんNGNG
>53
もちろん>>48はネタに決まってる。言うだけタダだもんねえ。
0055デフォルトの名無しさんNGNG
queueやdequeくらいなら半日もかからないな。
iteratorで触れるタイプは一日くらいだろう。
一日半もあれば確実。iteratorでさらに一日。
コンテナ全部を数日でできない人は何に時間をかけてるんだ?
0056デフォルトの名無しさんNGNG
>>55
嘘もここまで来ると立派なもんだ。
0057デフォルトの名無しさんNGNG
すでにalgorithmとiteratorがあったら
vectorあたりは半日で書けるだろ。
0058デフォルトの名無しさんNGNG
>>55
テスト
0059デフォルトの名無しさんNGNG
deque程度を半日で書けないプログラマは
いっそ辞職なさい

あれは普段普通に書くtemplate classの最低限の規模です
0060デフォルトの名無しさんNGNG
漏れ半日じゃstackも書けないや(´・ω・`)ショボーン
0061デフォルトの名無しさんNGNG
minに一日
maxに一日
medianに三日かかる人だって立派に生きてます
0062デフォルトの名無しさんNGNG
>>59
もちろんパフォーマンス的なチューニングは完全なんだろうな。
ただ書くってだけなら俺にもできるが、遅かったら作る事自体が意味がない。
0063デフォルトの名無しさんNGNG
>>62
詭弁でたー
0064デフォルトの名無しさんNGNG
>>62
STLのdequeはパフォーマンス的によほど優れてるということですか。
で、それはなぜ?
0065デフォルトの名無しさんNGNG
>62
もちろんSTL dequeのパフォーマンス的なチューニングは完全なんだろうな?
0066デフォルトの名無しさんNGNG
STLの要件を満たすモノを数日で?はぁ?

vector,list,deque,map,set,multimap,multiset (queue,stack
これらを数日でねぇ。
テスト等の手間も考えての発言とは思えないな。

ま、口だけならなんとでもいえるからなw
2ch上では優越感に浸らしてあげようじゃないのw

すごいでちゅねーw
0067デフォルトの名無しさんNGNG
>>66
おまえならそれぞれ何日かけて作る?
0068デフォルトの名無しさんNGNG
STLが今の姿になるまでの年月はなんだったんだ
0069デフォルトの名無しさんNGNG
書けないって言ってる奴はネタだろ。

20年ほど前のCでどろどろ書いてた時代じゃ
STLで書かれてたような基本アルゴリズムは
毎日大量に書かれてたし、
それから20年間の経験によってまとめられた設計案を
いざSTLのような汎用ライブラリーとして書いてみろと言われたら
それこそ数日もかからない。
テスト?何十年も親しんできた類似コードを
また同じように書き直しただけだ。
テストするのに時間かかるわけがない。
hello worldのテストに1ヶ月かけたい人から見れば不安だろうけどな。
0070デフォルトの名無しさんNGNG
相変わらずツマンネー釣りだな
0071デフォルトの名無しさんNGNG
>20年ほど前のCでどろどろ書いてた時代じゃ
>STLで書かれてたような基本アルゴリズムは
>毎日大量に書かれてたし、

そんなに大量にかかれていたんなら、100分の1になりそうだな
0072デフォルトの名無しさんNGNG
プログラマーほど技術の上下の差の激しい分野はないからな。
できる奴は、できてあたりまえ、できないはずがない、と思い込んでるし。
できない奴は、できなくてあたりまえ、できるはずがない、と思い込んでるし。
レベルが1つずれるだけでこういう認識の違いが生まれるのに、
一番上と一番下の距離は更に遠い。

そいつらの間で起きるできるできない論争は見てて笑える。
0073デフォルトの名無しさんNGNG
日常生活で触れる言語はプログラミング言語がほとんどで
自然言語はほとんど使わない生活を十年以上続けてる特殊な人達は
ネイティブスピーカーになってるので、
その人達の数日と一般プログラマの数日を一緒にしてはいけない。
0074デフォルトの名無しさんNGNG
まあ、口だけで作ったことも無い奴の
できる発言ほど当てにはならないってことだ。
見ててマジわらえるw
0075デフォルトの名無しさんNGNG
恐らく授業でアルゴリズムについて勉強しだした学生さんだろ。
0076デフォルトの名無しさんNGNG
今までは1000人いたら1000通りのSTLのようなものがあったわけだ
だったら1/100どころの話じゃないね
0077デフォルトの名無しさんNGNG
例外安全やチューニングなし、コンテナ要件を厳密に満たす必要ないなら一日で書けるよ
テストもなしで誰も使わないだろうけど


dequeue半日でできるとか言ってるスーパープログラマーは
boostに参加して腕を奮ってくださいな
0078デフォルトの名無しさんNGNG
そんなに「作れる作れる」言うなら、dequeでも何でもいいからコンテナを
作ってどこかで晒してみろよ。

それもしないで信じろという方が無理だ。
0079デフォルトの名無しさんNGNG
みんな口だけなので無理
0080デフォルトの名無しさんNGNG
boostを作ったのは、この俺です
0081デフォルトの名無しさんNGNG
>>80
小さい頃に教えられなかった?「嘘つきは泥棒の始まり」って。( ´,_ゝ`)プッ
0082デフォルトの名無しさんNGNG
再びチョビひげの男に疑いを持たれたその時、村のあちこちで爆発が起こります。
0083デフォルトの名無しさんNGNG
STLコンテナが低レベルって言ってるやつは
どうせ同じ物を作れると言っても見本を見ながらしか書けない
0084デフォルトの名無しさんNGNG
>>83
お前以外に誰が低レベルと言ってたっけ?
0085デフォルトの名無しさんNGNG
dequeue見てみたが、コメント除くと異様に小さいな。
このサイズだと速い奴なら1時間から数時間、
遅い奴なら数日から数カ月か
0086デフォルトの名無しさんNGNG
deque実装の最小サイズ競争でもしてみますか。
徹底的に無駄を除去して1バイト単位で削ればどこまで
小さくできるか。
0087デフォルトの名無しさんNGNG
>>86
やっぱりメンバ関数とかコンストラクタはstd::dequeに完全準拠が条件?
0088デフォルトの名無しさんNGNG
コメント除いて
stlportでも古いRWでも1500行はあるように見えるが
deque
(どっちもalgorithmとかiterator多用で1lineが長い)
0089デフォルトの名無しさんNGNG
>>87
それだとただのコピペ書き換え合戦なので、
多少の独自性はいいんじゃないかな。
ただしiteratorは使えないと意味が無いので必須条件。
0090デフォルトの名無しさんNGNG
つかdequeの代わりに使えなかったら意味無いから
インターフェースは同じじゃなきゃ意味無いだろ。
内部実装はどうでもいいけど。
0091デフォルトの名無しさんNGNG
>コメント除いてstlportでも古いRWでも1500行はあるように見えるがdeque

日本語でお願い
0092デフォルトの名無しさんNGNG
>>91
倒置法はならったかな?
0093デフォルトの名無しさんNGNG
とうち-ほう
文において、普通の語順と逆にして語句を配置し修辞上の効果をあげる表現方法。「出た、出た、月が」「進もう、未来へ」の類。
0094デフォルトの名無しさんNGNG
末尾に助詞をつけない倒置法があるのか
0095デフォルトの名無しさんNGNG
>>92
体言止めと倒置法の併用だな。小学生高学年くらいで習ったっけか?
0096デフォルトの名無しさんNGNG
記号「<」の省略に一票
0097デフォルトの名無しさんNGNG
「…1500行はあるように見えるがdequeである」
の末尾「である」を省略したのなら体言止め
0098デフォルトの名無しさんNGNG
dequeをdequeueって間違っている奴は、"デキュー"って読んでいるわけ?
"デック"だよ…頼むよ…

> コンテナ要件を厳密に満たす必要ない

それはゴミだ。
0099デフォルトの名無しさんNGNG
両端キューなんだから
デキューでもいいじゃん
0100デフォルトの名無しさんNGNG
読み方なんてどうでもいいって言ってる香具師は、プログラムもいい加減に
しか書けなさそう。
0101デフォルトの名無しさんNGNG
char
これをチャーと呼んでもキャラと呼んでもいいのと一緒でしょ。
0102デフォルトの名無しさんNGNG
http://www.wakhok.ac.jp/~sumi/stl/header/deque.html

0103デフォルトの名無しさんNGNG
それは公式見解なんですか?
ただの個人ページでは無いのですか?
0104デフォルトの名無しさんNGNG
dequeがdouble ended queueの略だというのは理解してる?
0105デフォルトの名無しさんNGNG
Sunもこう言っていますよ。
http://66.102.7.104/search?q=cache:7vD8GRucE_IJ:java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/LinkedList.html+deque+%E3%83%87%E3%82%AD%E3%83%A5%E3%83%BC&hl=ja&lr=lang_ja&inlang=ja

この人たちも。
http://www.doumo.jp/aon-java/jsp/postgretips/tips.jsp?tips=3
http://wwws.kobe-c.ac.jp/deguchi/c/list/llist.html
http://www.att.or.jp/perl/pdsc/pdsc-0j.html
http://www.cc.nao.ac.jp/vppman/HTML/japan/langCpls/stl/stdref/sta_9602.htm
0106デフォルトの名無しさんNGNG
en-queue エンキュー キューに入れる。
de-queue デキュー キューから出す。
両方の端からエンキュー・デキュー出来るから"double ended" queue

# 専門用語なんて、そのカテゴリに凝り固まってるヲタどもの自己満足のためにしか存在価値がない、とか思ってる口か?
0107デフォルトの名無しさんNGNG
98が窮地に・・
0108デフォルトの名無しさんNGNG
これを機に>>98も心を入れ替えてくれるでしょう
0109デフォルトの名無しさんNGNG
>107,108
自演ですか?(・∀・)
011098NGNG
http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?deque
http://www.sgi.com/tech/stl/Deque.html
これでいいですか? 暇な人はKnuth参照してねん。
0111デフォルトの名無しさんNGNG
略語をどう発音するかは各自流儀が生まれやすくどれも間違いではない。
dequeを [dek] と発音する人もいれば [dekju:] と発音する人もいる。
Knuthは [dek] を支持したがこれも流儀の一つに過ぎない。
それはさておき
>>98
> dequeをdequeueって間違っている奴は、"デキュー"って読んでいるわけ?
> "デック"だよ…頼むよ…
「dequeという表記が正しくdequeueと表記が間違い」か否かについては
発音とは異なる問題。
もし "double-ended queue" の略として "dequeue" を書いたならば
語源が "double-ended queue" であることについては争いの無いことであり
"deque" と "dequeue" のいずれも分かる範囲まで略した結果に過ぎないため、
"deque" が間違いではないという前提がある以上、"dequeue" が間違いとは言えない。
もしクラス名 "deque" という固有名詞ないしプログラミング言語で記述される識別子
を表現しているつもりであれば、"deque" を意味して "dequeue" と表記することは
不適切かつ間違いである。人間だけでなくコンパイラでさえもそれをエラーと指摘する。
さて「dequeという表記が正しくdequeueと表記が間違い」の是非についてだが、
上記いずれのつもりであるかの背景を無視して間違いを指摘することはできない。
強いて言えば、背景について触れずに他方の意見を間違いだと断定することが
唯一の間違いである。そのような行為は98だけが行っている。
0112デフォルトの名無しさんNGNG
pngは絶対に「ぴんぐ」だからな。それ以外は認めないよ。
0113デフォルトの名無しさんNGNG
>>111
"deque"を"dequeue"って表記している本って例えばどんな糞本?
0114デフォルトの名無しさんNGNG
98しつこいよ98
0115デフォルトの名無しさんNGNG
わかった!俺って天才かも。

dequeをdequeueと書く理由は、dequeと書いてしまうと、std::dequeの機能を
全部取り入れたコンテナを自作するという意味になってしまうので、dequeue
と最初から書いておく事によって、後から「これ違うじゃん」と突っ込みを入れ
られても、「だってdequeueだよ。dequeじゃないじゃん」と言い逃れできる余地
を残しておくためだろ。
0116デフォルトの名無しさんNGNG
やっちゃった
0117デフォルトの名無しさんNGNG
double-ended queueの意味でdequeueは良く使われてる
http://www.google.com/search?q=dequeue+%22double+ended+queue%22&lr=
0118デフォルトの名無しさんNGNG
>>117
それがstd::dequeとどんな関係があるんだよヴォケ
0119デフォルトの名無しさんNGNG
とりあえずdequeぽいのでけた.

今のstd::dequeに新規に機能追加するとしたら何でしょうかね?
個人的にはbuffer拡張とかブロックサイズとかがポリシーになってたらなぁと思ったり
0120デフォルトの名無しさんNGNG
だから、アロケータ書けよ
0121デフォルトの名無しさんNGNG
>120
いや,アロケーションの話ではなくてstd::dequeは
内部のバッファをreserveしないといけないはずなので,
そのreserveに関するポリシーがあっても良さげかなと思ったんですよ.
vectorも同じですけれど.
0122デフォルトの名無しさんNGNG
>>119
どうでもいいけどどっかに晒してみろよ。それまでは虚言と同じだから。
0123デフォルトの名無しさんNGNG
アロケータとイテレータが面倒すぎて投げた。
0124デフォルトの名無しさんNGNG
アロケータとイテレータがメインじゃないか。
0125デフォルトの名無しさんNGNG
イテレータがないとアルゴリズムが全く使えん。アロケータがなければboostの
poolでも使えばいいが。
0126デフォルトの名無しさんNGNG
STLじゃなくてもいのですが
データベースアクセスクラスでいいものはありませんか?
Linuxでやりたいので,MFCはなしでアドバイスお願いします。
0127デフォルトの名無しさんNGNG
Linux/GNUにまともなクラスライブラリを期待してはいけない
0128デフォルトの名無しさんNGNG
>>127
悪い思い出でも?
0129デフォルトの名無しさんNGNG
>>126
MONOを入れたらADO.NETが使えるらしいよ。
0130デフォルトの名無しさんNGNG
>>126
sourceforgeやfreshmeatにいくつか転がってるので
どれでも好きなものを
0131>>52NGNG
みなさん、議論の途中で申し訳ないのですが、>>52へのご教授もお願いします・・・
0132デフォルトの名無しさんNGNG
$(GCC)/libstdc++-v3/testsuite/22_locale/*に山ほどある。
0133>>52NGNG
>>132
GCCもってないんです・・・
0134デフォルトの名無しさんNGNG
>>133
インストールすればいいだろ。
0135132NGNG
>>133
このクズが!ここで見ろ
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc%2b%2b-v3/testsuite/
0136名前は開発中のものです。NGNG
>135
おいこら! DLできねえぞチョン公!
0137デフォルトの名無しさんNGNG
codecvt回りならgoogleで引っかかるRogue Waveのドキュメントがまぁまとまってるんじゃないか。
あれ、WWWで公開されてていいものなんか知らんが。
0138デフォルトの名無しさんNGNG
http://msdn.microsoft.com/library/en-us/dnvs05/html/stl-netprimer.asp
STL.NET
■ このスレッドは過去ログ倉庫に格納されています