私はこの面白い状況があります。キュー<string&>エラー
文字列を保持する構造体がたくさんあります。
struct foo
{
string mStringName;
}
vector<foo> mFoos;
私は、文字列の参照
queue<string&> mStringQueue;
のキューを持っているそして最後に、私はconstの文字列HERESに&
void Bar(const string&);
状況を受け入れる機能を持っています。
//...in some loop
currentFoo = mFoos[index];
// Queue up the string name.
mStringQueue.push(currentFoo.mStringName);
//...Later on, go through our queue and pass each one to the function.
for (int queueIndex = 0; queueIndex < mStringQueue.size(); queueIndex++)
{
Bar(mStringQueue.front());
mStringQueue.pop();
}
これは私に次のコンパイルエラーが得られます。
エラーC2664: 'STD ::キュー< _Ty> ::プッシュ':「文字列&(&)に '文字列' からパラメータ1を変換することはできませんが「
私はdefinitleyトラブルの文字列の参照とその他もろもろの周りに私の心をラップを抱えているので、任意の助けをいただければ幸い種類の要件を満たしていない
データが動的ではないため、参照を使用しようとしていました。どのように私はキューを使用して行くだろう? myQueue.push(新しいSTRING(foo-> mStringName));またはmyQueue.push(&foo-> mStringName)); –
MintyAnt
すでにデータが保存されているので、データを複製しないように2番目のオプションに進むことができます。また、後で手動で文字列を削除する負担から解放されます。 – Tibor