1

私はこのコードに苦労しています:

std::queue<char> output_queue;
std::string output_string
// put stuff into output_queue
while (!output_queue.empty())
    {
    output_string.insert(0,(output_queue.front()));
    output_queue.pop();
    }

std::queue<char>::front()を返すので、どういうわけかこれを行うことchar&ができず、これをに入れることができませんstd::string

4

2 に答える 2

5

insert文字を挿入するための引数がありません。その文字の数を指定する必要があります。

output_string.insert(0, 1, output_queue.front());

自分で簡単にしたい場合は、std::deque代わりにを使用して、次のstd::queueように置き換えることもできます。

std::deque<char> output_queue;
//fill output_queue in same way, but use push/pop_front/back instead of push/pop

std::string output_string(output_queue.begin(), output_queue.end());
output_queue.clear();

queueあなたが実際にstd::deque内部でデフォルトでを使用しているので、それは今とほとんど同じことでしょう。ただし、はdequeイテレータをサポートしているため、基盤となるストレージに依存する醜いコードなしでこれが可能になります。

于 2013-01-06T21:03:51.583 に答える
1

あなたは使用することができます

output_string += (output_queue.front());

そして(しばらくして)reverseそれ

于 2013-01-06T21:03:47.903 に答える