>백엔드 개발 >C++ >C에서 `std::queue`를 어떻게 반복할 수 있나요?

C에서 `std::queue`를 어떻게 반복할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-10-29 02:21:30909검색

How Can I Iterate Over a `std::queue` in C  ?

std::queue에 대한 반복

C에서 std::queue는 FIFO(선입선출) 컨테이너입니다. . 기본적으로 std::deque를 기본 데이터 구조로 사용합니다. 이는 큐에 넣거나 빼는 작업에 효율적이지만 큐의 내용을 반복할 때 문제가 됩니다.

문서에는 "특정 큐 클래스에 대해 컨테이너 클래스가 지정되지 않았습니다."라고 명시되어 있습니다. 이는 기본 deque에 직접 액세스하여 반복할 수 없음을 의미합니다. 그러나 이 제한 사항을 해결할 수 있는 몇 가지 방법이 있습니다.

범위 기반 For 루프 사용

C 11을 지원하는 경우 범위를 사용할 수 있습니다. -큐의 요소를 반복하는 for 루프 기반. 이 접근 방식은 std::queue가 요소를 순회하는 데 사용할 수 있는 반복자를 제공한다는 사실을 활용합니다.

<code class="cpp">std::queue<int> queue;

// Populate the queue...

for (const int& element : queue) {
  std::cout << element << " ";
}</code>

표준 반복기 사용

C 11을 지원하지 않더라도 표준 반복자를 사용하여 대기열을 반복할 수 있습니다. 다음 코드는 이를 보여줍니다.

<code class="cpp">std::queue<int> queue;

// Populate the queue...

std::queue<int>::iterator it;
for (it = queue.begin(); it != queue.end(); ++it) {
  std::cout << *it << " ";
}</code>

참고:

기본 데크에 직접 액세스할 수는 있지만 정의되지 않은 오류가 발생할 수 있으므로 권장되지 않습니다. 행동 및 데이터 손상. 대신 위에 설명된 방법 중 하나를 사용하여 대기열의 내용을 반복하세요.

위 내용은 C에서 `std::queue`를 어떻게 반복할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.