У меня есть две абсолютно одинаковые функции, за исключением того, что одна из них использует stack
для своих операций, а другая использует queue
:
void doQueue()
{
std::queue<int> q;
...
...
q.push(someValue);
...
...
int tmp = q.front();
q.pop()
}
void doStack()
{
std::stack<int> s;
...
...
s.push(someValue);
...
...
int tmp = s.top();
s.pop()
}
Я хочу устранить дубликатыкод.Поскольку queue
использует функцию front
для получения первого значения, а stack
использует функцию top
, я подумал, что шаблоны могут не работать, так как должны вызываться функции с разными именами.
MyДругая идея состояла в том, чтобы создать интерфейс, который будет в качестве обертки для обеих структур данных, и я могу обойти тот, который мне нужен.: * 10101 *
Но я думаю, что должен быть более простой и лучший способвыполните эту операцию.