天天看點

C++ 容器擴充卡——棧(stack)和隊列(queue)都不支援疊代器

對于queue<int> q; 在q.push(10); 後,以下能正确傳回TRUE的是:(多選題)

  A. q.front() == *q.begin();

  B. q.front() == q.back();

  C. q.emplace(20), q.back() == 20;

答案:

C++ 容器擴充卡——棧(stack)和隊列(queue)都不支援疊代器

解析:

A選項,容器擴充卡——隊列queue沒有成員begin和end(因為棧和隊列不支援疊代器,不能對任意元素進行通路);

B選項正确,因為目前隊列中隻有一個元素;

C選項,empalce允許将元素放在指定位置,如果沒有指定位置,這裡應該是預設插在隊尾。

代碼檢驗:

C++ 容器擴充卡——棧(stack)和隊列(queue)都不支援疊代器

可以看到,當要将隊列中的元素依次輸出時,因為隊列不支援疊代器,是以編譯器提示queue沒有成員“begin”(以及“end”)。