vector <CString> wArray ;
と宣言すると、可変長文字列を要素とする、可変長配列ができますが、
CString は、0x00を特別扱いするので、特別扱いしない配列にしたいのですが、
なにかいい方法は、ないでしょうか?
ちなみに
vector <vector<CHAR>> w2Array ;
とすることは、できませんでした。
(できれば、ポインタは、つかいたくありません)
OS、XP,VC++6.0
× vector <vector<CHAR>> w2Array ;
○ vector <vector<CHAR> > w2Array ;
こういう話?
でないなら、どんなデータを扱いたいのか具体的に書いてくれると良いかも。
たいちうさん、レスありがとうございました。
こういうなんですね。一時間も考えてました。
VC++8.0(2005)からは、どっちもOKですけどね
○ vector <vector<CHAR>> w2Array ;
○ vector <vector<CHAR> > w2Array ;
vector <string> w2Array; では、駄目なんですかね。。
悠 さんレスありがとうございます。
string では、0x00 を特別扱いしますので、困ります。
たとえば、{0x00,0x10,0x20} の内容をstring に入れて、
レングスをとると、「0」になってしまいます。
copy,compareなども0x00までしか見ないので画像データをあつかっているので、困って
しまいます。
アキラさん、いい情報ありがとうございました。
ちょっと値段とパフォーマンスを見てみます。
> string では、0x00 を特別扱いしますので、困ります。
これは,文字列を扱うならCHARでも一緒だと思いますが.....
確かに変数に取り込むことは出来ても、実際に操作する段階になって
無視されてしまうのでは?
stringはそれを事前に防ぐために特別扱いするのではないですか?
C,C++,おそらくCLIも、文字列中に「0x00」を入れるのは避けなければいけないのでは?
> string では、0x00 を特別扱いしますので、困ります。
しませんってば。
string zero_contained(abc\0def\0ghi\0,12);
悠さん、επιστημη さん、ITOさん、レスありがとうございます。
おっしゃるとおり、string は、CString と違い、NULLを特別扱いしません。
わたしの勘違いでした。
ITOさん、そのとおりだとおもいます。ですから、私は、文字列ではなく、ただのストリ
ームを扱いたいのです。(もともと、私のstringの勘違いが原因で、すこし話がそれて
しまいましたね。すいません。)
επιστημη さん、いつもありがとうございます。
いま、επιστημη さんのSTLに関しての資料を読ませてもらっています。
とてもわかりやすいと思います。