Как удалить элементы из начала вектора (из реализованной очереди на базе массива) за константное время?

void push(const string& date, string str) {
    ofstream out(str, ios::app);
    if (queue.size() < length) {
        queue.push_back(date);//добавление элемента в конец массива(в очередь) занимает 0(1)
    }
    else out << "overflow" << endl;
}
void pop(string str) {
    ofstream out(str, ios::app);
    if (!queue.empty()) {
        out << queue.front() << endl;
        queue.erase(queue.begin()); //удаление (функция erase) из начала вектора - 0(n)
    }
    else out << "underflow" << endl;
}

Ответы (0 шт):