【C++】STL(Standard Template Library)相談室 初期値ではなくアルゴリズムが最悪
>>952 じゃぁどうすればもうすこしマシになるんだ?
>>948 恐らくは、WritePrivateProfileStringなどで書き出すんだろうから必要な長さは充分予測可能では?
その長さを初期値としてGetPrivateProfileStringを呼び出し、戻り値を得る。その戻り値によって
切り詰められたことが判った場合に再度呼ぶか切り詰められたままかエラー処理するかは仕様次第。
955 :
デフォルトの名無しさん :04/12/17 10:29:29
>952 俺も952がどうやってるのか興味ある。煽りじゃない。教えてくれ
マジックナンバーが「絶対に」駄目とか言う奴は馬鹿に決まってるだろ。 放っとけよ。
誰か絶対にダメなんていったのか?
ん? >934が言っているのはそのケース限定では?
スレ違いうざい。 くだ質とか初心者に行けよ。
なんでstd::stringがスレ違いなの?
マジックナンバーがどうとか言ってるのがスレ違いなんだろ
俺の気に入らない奴の話は全部スレ違い お前らなんか消えちゃえ
ぷ
std::stringがテンプレートじゃないなんて言うなよ w
マジックナンバーなんてconstで名前をつければいいだけ。
const NUM_256 = 256;
半年後 const NUM_256 = 512;
>>966-967 STLはコンテナやそれに対するアルゴリズムの部分。
文字列は違う。
STL∈標準ライブラリでSTL=標準ライブラリじゃないぞ。
>>971 std::stringだってchar型を格納するコンテナだろ。
>>972 格納するデータの型が固定されてるものは普通コンテナとは呼ばない。
>>973 おいおい。まさに
>>967 だ。
std::stringはstd::basic_string<char>のシノニムだぞ。
何を勘違いしているのか知らないが、STL ってのは '94 に C++ 標準ライブラリとして採用された汎用コンテナと汎用アルゴリズムを 指すもの。 string だの iostream だのは含まれないし、ある特定の条件を満たせば STL と呼べる、って類の話じゃないんだが。
>>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."
C++標準ライブラリチュートリアル&リファレンスでも文字列はSTLの章に入ってないしな。
966の無知っぷりがあらわに
>>977 それは日本語版のP567だな。都合のいいとこだけ抜き出すなよ。w
---------------------------
17.5 "おおよそコンテナ"
組み込み配列、string、valarray、bitsetは、要素を保持する型であり、
多くの用途でコンテナとみなすことができる。しかし、これらは標準コン
テナインターフェイスが提供するあれこれの機能を持たないので、
これら”おおよそ”コンテナは、vectorやlistといった完全なコンテナと
完全に交換可能な形で使うことはできない。
17.5.1 string
basic_stringは、添字演算子、ランダムアクセス反復子のほか、コンテナが
持つ便利な記述形式の大半を提供する。しかし、basic_stringで使える要素型
の選択肢は狭い。basic_stringは文字列としての用途に最適化されており、
コンテナとは大きく異なる形で使われることが多い。
---------------------------
いずれにせよ、型の固定云々は関係ないが。
>>980 > いずれにせよ、型の固定云々は関係ないが。
書いてあるよ。
「しかし、basic_stringで使える要素型の選択肢は狭い。」
この要素の型の制約がきついから(それだけじゃないが)、完全なコンテナになりきれない
って文脈で書いてあるんだよ。
同じく、std::vector<bool>も「STLのコンテナになりきれていない」から STLのコンテナではないんだっけか。
それはともかく次スレ。
>>983 いらね
C++相談室と分ける合理的な理由ある?
ない
986 :
デフォルトの名無しさん :04/12/18 00:19:46
立てようか?今から風呂入ってくるから、立てろという意見の方が多かったら立てる。 立てるなというレスが多かったら放置。
立てるな 重複すれ多すぎ
>>987 今風呂からあがりました。
わかりました。放置します。
具体的にstringってどこら辺がコンテナじゃないんですか?
Effective STL
すいません.ざっと見渡してみましたがstringがコンテナでないという 記述が見つからなかったです.具体的にどの部分ですか?
>>981 そうかな?
stringはおおよその意味でコンテナとは言えるが
標準コンテナのインターフェイスを完全に備えているわけではないので
完全なコンテナとは言えない。
stringはほぼコンテナではあるが、文字列としての機能に最適化されているために
完全なコンテナ(vectorとか)と同じような使い方をされることはない。
つまりstringが完全なコンテナでない理由は
「標準コンテナのインターフェイスを完全に備えているわけではない」
と云う意味に理解したけど。
ContainerConceptに合致するかどうかで決着つけてはどうか?
>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のモデルだと言ってますけど.
以後、STLスレを立てるやつは、 STLが使えない→STLは標準C++の一部ではない! という思考をするDQNとみなす
う
ん
も
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。