いくつかの文字列をまとめて扱いたいと考えていて、
vectorで文字列を管理しようということになったのですが、
std::vector<char[256]> Lines;
のように宣言しようと考えていたのですが、
Lines.push_back("text");
とした場合にエラーになってしまいます。
宣言から間違っているのかもしれませんが、よろしければどうすればよいのかご教授願えないでしょうか。
もしくは、文字列を1行目、2行目、3行目・・・のように管理する代案があるのでしたらそちらもお願いします。(何行かはかわります)
std::string
ってのがあります。
char buf[256];
buf = "text";
これがコンパイルエラーになる理由と同じです。
stringを使うのが吉だと思う。
早速のご返答ありがとうございます。
当初はstringを予定していたのですが、色々と悪いうわさが飛び込んできたものでして。。
ですが、挑戦してみようかなと思います。ありがとうございました。
>当初はstringを予定していたのですが、
>色々と悪いうわさが飛び込んできたものでして
Effective STL 14項より引用。
stringは
"マルチスレッド環境で参照カウントされたstringを使う場合は、スレッドセーフティのサポートにより生じるパフォーマンスの問題に注意した方がよい"
と、あります。
それにより最悪化されるプログラムにはvector<char>を使うことができる。
と、説明されています。
#その他にも代用する理由は色々あるでしょうが
ご参考になれば。
ツイート | ![]() |