새 요소가 삽입되면 가장 오래된 요소와 마지막 요소를 밀어 낼 데이터 구조를 찾고 있습니다. 예를 들어 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()
폐기하기 전에 필요한 경우 이전에 사용해야합니다. 그러나 예외에 신경 쓰지 않으면 더 나은 방법이 될 수 있습니다.