を介して個々の文字のリストを受け取ることが期待される関数がありconst char *
ます。各文字を にコピーするvector<char>
必要がある場合、操作を実行するための最良の (つまり、最も効率的な) 方法は何でしょうか?
copy
私はアルゴリズムで考えましたが、それがより「エレガントな」ソリューションであるかどうかはわかりません:
void
example
(const char * const s)
{
copy(s, s+strlen(s), myvector.begin())
}
(私の「個人的な」インデント スタイルを考えると、コードがまだ読めることを願っています)
しかし、STLには、文字列にヌル文字が見つかるまでコピーできる何かが実装されているはずです。
(なぜ私が を受け取っているのか疑問に思うならconst char *
、それはユーザーが一時変数を利用するときにコンパイラが作成する型であり、私の関数は のように呼び出されることが期待されていますexample("fvh")
。代替ソリューションは歓迎されます)
前もって感謝します。よろしく、カルリッシュ
編集:
@ipc と @juanchopanza が言ったことを試した後、私はばかげているように感じます。それは魔法のように機能します。
パフォーマンスが低下するかどうかはまだわかりませんが、いずれにせよ、コンパイラは暗黙的な変換を行います。これは純粋な C++ であるため、間違いなく進むべき道です。
どうもありがとう、そしてごめんなさい。がんばれ、カルリッシュ