2

なぜC++はそのようなことを許可しないのですか?

複数の優先キューが必要です。その数は実行時に決定されます。

これはコンパイルに失敗します

std::vector<std::priorityqueue<Class A>>

より良いアプローチはありますか?

4

2 に答える 2

6

正しいコードは次のようになります。

std::vector<std::priority_queue<A> >

Classは の隣に属さずApriority_queueアンダースコアが含まれており、2 つの右山括弧の間にはスペースが必要であることに注意してください (>>は右シフト演算子として解析されます)。

Aこれには、同等以下である必要もあります(そうでない場合は、優先度キューで使用される比較関数を提供する必要があります)。

于 2010-08-13T21:23:47.277 に答える
1

これで問題なく動作するはずです。構文は次のとおりです。

std::vector<std::priority_queue<A> >

(末尾近くのスペース (" ") に注意してください。

于 2010-08-13T21:24:02.847 に答える