이 페이지를 살펴 봤지만 같은 이유를 알 수 없습니다. 거기에 언급되어 있습니다
"아무 값도 반환하지 않고 클라이언트가 front ()를 사용하여 큐 맨 앞의 값을 검사하도록 요구하는 것이 더 합리적입니다."
그러나 front ()에서 요소를 검사하려면 해당 요소를 lvalue로 복사해야합니다. 예를 들어이 코드 세그먼트에서
std::queue<int> myqueue;
int myint;
int result;
std::cin >> myint;
myqueue.push (myint);
/ * 여기서는 결과에 할당 될 RHS에 임시가 생성되며, 참조로 반환되는 경우 결과는 팝 작업 후 유효하지 않게 렌더링됩니다 * /
result = myqueue.front(); //result.
std::cout << ' ' << result;
myqueue.pop();
다섯 번째 줄에서 cout 객체는 먼저 myqueue.front ()의 복사본을 만든 다음 결과에 할당합니다. 그래서 차이점은 무엇입니까, 팝 기능은 같은 일을 할 수 있습니다.
front()
하려면 해당 요소를 lvalue로 복사해야합니다."-그렇지 않습니다. front
값이 아닌 참조를 반환합니다. 참조하는 값을 복사하지 않고도 검사 할 수 있습니다.
pop()
있습니다. 사용하는 경우 std::queue<T, std::list<T>>
제공된 참조 front()
가 push()
. 그러나 사용 패턴을 알고 있어야하며 제약 사항을 문서화해야합니다.
void std::queue::pop();
.