「T」がキューまたはスタックのいずれかになる関数があります。現在、私が持っている関数の署名について:
template <class T>
void foo(T<string> baa){
//do something
}
foo 内で T.pop() を呼び出したいのですが、できません。
次に、2 つのバージョンの pop を作成しました。1 つはキュー用で、もう 1 つはスタック用です。
string bar(stack<string> & baa){
string t=baa.top();
baa.pop();
return t;
}
string bar(queue<string> & baa){
string t=baa.front();
baa.pop();
return t;
}
その後、これを実行しようとしましたが、うまくいきませんでした。どうすればいいですか?
template <class T>
void foo(T<string> baa){
//do something
string baz=bar(baa);
}
編集: top() は単純に一番上の要素を削除することを忘れていました。これらの変更を反映するようにコード フラグメントを編集しました。ただし、まだ機能していません。