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

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:04/12/17 01:50:35
初期値ではなくアルゴリズムが最悪
953デフォルトの名無しさん:04/12/17 01:59:14
>>952
じゃぁどうすればもうすこしマシになるんだ?
954デフォルトの名無しさん:04/12/17 03:43:27
>>948
恐らくは、WritePrivateProfileStringなどで書き出すんだろうから必要な長さは充分予測可能では?
その長さを初期値としてGetPrivateProfileStringを呼び出し、戻り値を得る。その戻り値によって
切り詰められたことが判った場合に再度呼ぶか切り詰められたままかエラー処理するかは仕様次第。
955デフォルトの名無しさん:04/12/17 10:29:29
>952
俺も952がどうやってるのか興味ある。煽りじゃない。教えてくれ
956デフォルトの名無しさん:04/12/17 10:41:23
マジックナンバーが「絶対に」駄目とか言う奴は馬鹿に決まってるだろ。
放っとけよ。
957デフォルトの名無しさん:04/12/17 10:50:37
誰か絶対にダメなんていったのか?
958デフォルトの名無しさん:04/12/17 10:58:58
>>957
>>934あたりがそういう意味のことを言ってるな
959デフォルトの名無しさん:04/12/17 11:05:35
ん?
>934が言っているのはそのケース限定では?
960デフォルトの名無しさん:04/12/17 11:15:40
スレ違いうざい。
くだ質とか初心者に行けよ。
961デフォルトの名無しさん:04/12/17 11:30:04
なんでstd::stringがスレ違いなの?
962デフォルトの名無しさん:04/12/17 11:34:48
マジックナンバーがどうとか言ってるのがスレ違いなんだろ
963デフォルトの名無しさん:04/12/17 13:11:15
俺の気に入らない奴の話は全部スレ違い
お前らなんか消えちゃえ
964デフォルトの名無しさん:04/12/17 13:14:25
965デフォルトの名無しさん:04/12/17 13:59:57
>>961
STL じゃないからでは?
966デフォルトの名無しさん:04/12/17 14:06:56
>>965
君の言うSTLの定義とは?
967デフォルトの名無しさん:04/12/17 14:11:24
std::stringがテンプレートじゃないなんて言うなよ w
968デフォルトの名無しさん:04/12/17 14:18:57
マジックナンバーなんてconstで名前をつければいいだけ。
969デフォルトの名無しさん:04/12/17 14:31:56
const NUM_256 = 256;
970デフォルトの名無しさん:04/12/17 14:43:20
半年後
const NUM_256 = 512;
971デフォルトの名無しさん:04/12/17 15:17:05
>>966-967
STLはコンテナやそれに対するアルゴリズムの部分。
文字列は違う。
STL∈標準ライブラリでSTL=標準ライブラリじゃないぞ。
972デフォルトの名無しさん:04/12/17 16:33:08
>>971
std::stringだってchar型を格納するコンテナだろ。
973デフォルトの名無しさん:04/12/17 16:40:44
>>972
格納するデータの型が固定されてるものは普通コンテナとは呼ばない。
974デフォルトの名無しさん:04/12/17 16:51:22
>>973
おいおい。まさに>>967だ。
std::stringはstd::basic_string<char>のシノニムだぞ。
975デフォルトの名無しさん:04/12/17 16:55:56
何を勘違いしているのか知らないが、STL ってのは '94 に
C++ 標準ライブラリとして採用された汎用コンテナと汎用アルゴリズムを
指すもの。
string だの iostream だのは含まれないし、ある特定の条件を満たせば
STL と呼べる、って類の話じゃないんだが。
976デフォルトの名無しさん:04/12/17 16:59:15
977デフォルトの名無しさん:04/12/17 17:06:18
>>974
なにがおいおいだか。

The C++ Programming Language, 3ed, p491.
"However, each (of built-in arrays, strings, valarrays, and bitsets)
lacks some aspect or other of the standard container interface, so
these "almost containers" are not completely interchangeable with
fully developed containers such as vector and list."
"However, basic_string does not provide as wide a selection of types
as elements."
978デフォルトの名無しさん:04/12/17 17:18:25
C++標準ライブラリチュートリアル&リファレンスでも文字列はSTLの章に入ってないしな。
979デフォルトの名無しさん:04/12/17 17:19:41
966の無知っぷりがあらわに
980デフォルトの名無しさん:04/12/17 17:25:27
>>977
それは日本語版のP567だな。都合のいいとこだけ抜き出すなよ。w

---------------------------
17.5 "おおよそコンテナ"
組み込み配列、string、valarray、bitsetは、要素を保持する型であり、
多くの用途でコンテナとみなすことができる。しかし、これらは標準コン
テナインターフェイスが提供するあれこれの機能を持たないので、
これら”おおよそ”コンテナは、vectorやlistといった完全なコンテナと
完全に交換可能な形で使うことはできない。

17.5.1 string
basic_stringは、添字演算子、ランダムアクセス反復子のほか、コンテナが
持つ便利な記述形式の大半を提供する。しかし、basic_stringで使える要素型
の選択肢は狭い。basic_stringは文字列としての用途に最適化されており、
コンテナとは大きく異なる形で使われることが多い。
---------------------------

いずれにせよ、型の固定云々は関係ないが。
981デフォルトの名無しさん:04/12/17 17:31:32
>>980
> いずれにせよ、型の固定云々は関係ないが。
書いてあるよ。
「しかし、basic_stringで使える要素型の選択肢は狭い。」
この要素の型の制約がきついから(それだけじゃないが)、完全なコンテナになりきれない
って文脈で書いてあるんだよ。
982デフォルトの名無しさん:04/12/17 20:11:55
同じく、std::vector<bool>も「STLのコンテナになりきれていない」から
STLのコンテナではないんだっけか。
983デフォルトの名無しさん:04/12/17 20:33:43
それはともかく次スレ。
984デフォルトの名無しさん:04/12/18 00:13:35
>>983
いらね
C++相談室と分ける合理的な理由ある?
985デフォルトの名無しさん:04/12/18 00:14:45
ない
986デフォルトの名無しさん:04/12/18 00:19:46
立てようか?今から風呂入ってくるから、立てろという意見の方が多かったら立てる。
立てるなというレスが多かったら放置。
987デフォルトの名無しさん:04/12/18 00:21:11
立てるな
重複すれ多すぎ
988デフォルトの名無しさん:04/12/18 00:50:12
>>987
今風呂からあがりました。
わかりました。放置します。
989デフォルトの名無しさん:04/12/18 01:28:19
具体的にstringってどこら辺がコンテナじゃないんですか?
990デフォルトの名無しさん:04/12/18 01:35:49
Effective STL
991989:04/12/18 01:47:08
すいません.ざっと見渡してみましたがstringがコンテナでないという
記述が見つからなかったです.具体的にどの部分ですか?
992デフォルトの名無しさん:04/12/18 01:52:18
>>981
そうかな?

stringはおおよその意味でコンテナとは言えるが
標準コンテナのインターフェイスを完全に備えているわけではないので
完全なコンテナとは言えない。

stringはほぼコンテナではあるが、文字列としての機能に最適化されているために
完全なコンテナ(vectorとか)と同じような使い方をされることはない。

つまりstringが完全なコンテナでない理由は
「標準コンテナのインターフェイスを完全に備えているわけではない」
と云う意味に理解したけど。
993デフォルトの名無しさん:04/12/18 01:56:29
ContainerConceptに合致するかどうかで決着つけてはどうか?
994デフォルトの名無しさん:04/12/18 02:52:23
>993
Container Conceptのモデルかどうかならモデルになるんじゃないですかね?
stringが他のコンテナのモデルと違うのは,(参照カウント実装の可能性に伴う)
イテレータ・参照・ポインタの無効化のセマンティクスの特殊性と
operator[]等が返すreferenceが真の参照型かどうかぐらいだと思うのですが,
Container Conceptではそれらについては制限していないですから.

Forward Container Conceptのモデルかどうかについては
char_traitsでoperator==等のセマンティクスを変えられるので微妙なような・・・.
http://www.sgi.com/tech/stl/basic_string.html
では,SequenceとRandom Access Containerのモデルだと言ってますけど.
995デフォルトの名無しさん:04/12/18 08:59:30
この2つへ吸収ということで次スレは作らない。

【C++】template 統合スレ -- Part6
http://pc5.2ch.net/test/read.cgi/tech/1101384692/l50

C++相談室 part38
http://pc5.2ch.net/test/read.cgi/tech/1101473340/l50
996デフォルトの名無しさん:04/12/18 09:18:30
STLの一般的な質問は後者で、とりわけtemplate<>についてが前者かな。

BOOSTを語れゴラァ
http://pc5.2ch.net/test/read.cgi/tech/1091198276/
もね。
997デフォルトの名無しさん:04/12/18 11:07:36
以後、STLスレを立てるやつは、

STLが使えない→STLは標準C++の一部ではない!

という思考をするDQNとみなす
998デフォルトの名無しさん:04/12/18 13:29:05
999デフォルトの名無しさん:04/12/18 13:30:25
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。