Charの配列をVectorで

解決


ML  2005-10-10 07:33:47  No: 59235

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

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

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

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

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


Blue  2005-10-10 07:59:20  No: 59236

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


RiSK  2005-10-10 07:59:54  No: 59237

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

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

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


ML  2005-10-10 08:02:38  No: 59238

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


DD.  2005-10-10 17:33:15  No: 59239

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

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

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

ご参考になれば。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加