새 요소가 삽입되면 가장 오래된 요소와 마지막 요소를 밀어 낼 데이터 구조를 찾고 있습니다. 예를 들어 D구조를 나타냅니다. D유형의 3 개 요소가 포함되어 Number D의 기본 값으로 초기화됩니다 1, 2및 3.
경우 Number값을 포함하는이 5삽입되어 D, 3압출되고, 반면 1과 2오른쪽으로 시프트된다.
가장 먼저 떠오르는 것은 배열이지만 정의에는 푸시 동작이 포함되지 않습니다.
글쎄 내장 데이터 구조가 없지만 이중 연결 목록 연결 목록을 사용하여 구현하는 것이 간단 합니까?
—
사용자를 찾을 수 없음
큐에서 상속 된 랩퍼를 사용하는 것은 어떻습니까? 그런 다음 메소드를 추가하십시오
—
Francesco Dondi
void push_replace(T val) { pop(); push(val); }.
@FrancescoDondi 아마이어야한다
—
valbaca
T push_replace(T val) { T old = pop(); push(val); return old; }
이제 분명히 있습니다 : 당신은 단지 비공식적으로 정의했습니다; 아마도 잘 알려진 것인지, 일반적으로 합의 된 인터페이스를 가지고 있는지, 구현이 가능한지 여부를 물어봐야합니다.
—
PJTraill
@valbaca
—
프란체스코 돈디
pop()복잡한 객체를 복사하는 예외가있는 경우 스택 해제와 관련된 문제로 인해 아무것도 반환하지 않는 C ++을 생각하고 있으므로 front()폐기하기 전에 필요한 경우 이전에 사용해야합니다. 그러나 예외에 신경 쓰지 않으면 더 나은 방법이 될 수 있습니다.