Charの配列をVectorで

解決


ML  2005-10-09 22:33:47  No: 59235  IP: 192.*.*.*

いくつかの文字列をまとめて扱いたいと考えていて、
vectorで文字列を管理しようということになったのですが、

std::vector<char[256]> Lines;

のように宣言しようと考えていたのですが、
Lines.push_back("text");
とした場合にエラーになってしまいます。

宣言から間違っているのかもしれませんが、よろしければどうすればよいのかご教授願えないでしょうか。

もしくは、文字列を1行目、2行目、3行目・・・のように管理する代案があるのでしたらそちらもお願いします。(何行かはかわります)

編集 削除
Blue  2005-10-09 22:59:20  No: 59236  IP: 192.*.*.*

std::string
ってのがあります。

編集 削除
RiSK  2005-10-09 22:59:54  No: 59237  IP: 192.*.*.*

char buf[256];
buf = "text";

これがコンパイルエラーになる理由と同じです。

stringを使うのが吉だと思う。

編集 削除
ML  2005-10-09 23:02:38  No: 59238  IP: 192.*.*.*

早速のご返答ありがとうございます。
当初はstringを予定していたのですが、色々と悪いうわさが飛び込んできたものでして。。
ですが、挑戦してみようかなと思います。ありがとうございました。

編集 削除
DD.  2005-10-10 08:33:15  No: 59239  IP: 192.*.*.*

>当初はstringを予定していたのですが、
>色々と悪いうわさが飛び込んできたものでして
Effective STL 14項より引用。

stringは
"マルチスレッド環境で参照カウントされたstringを使う場合は、スレッドセーフティのサポートにより生じるパフォーマンスの問題に注意した方がよい"
と、あります。

それにより最悪化されるプログラムにはvector<char>を使うことができる。
と、説明されています。
#その他にも代用する理由は色々あるでしょうが

ご参考になれば。

編集 削除