C++程式設計STL中的deque::at()和deque::swap()


本文將討論C++ STL中deque::at()和deque::swap()函式的工作原理、語法和示例。

什麼是Deque?

Deque是雙端佇列,是一種序列容器,可以在兩端進行擴充套件和收縮操作。佇列資料結構只允許使用者在隊尾插入資料,在隊首刪除資料。讓我們以公交車站的佇列為例,乘客只能從隊尾加入佇列,而站在隊首的人最先離開。而在雙端佇列中,可以在兩端進行資料的插入和刪除。

什麼是deque::at()?

deque::at()是C++ STL中的一個內建函式,宣告在<deque>標頭檔案中。deque::at()返回一個引用,用於指向deque中指定位置的元素。此函式會跳轉到作為引數傳遞給函式的指定位置的元素。位置值從0開始。

語法

mydeque.at(int position);

引數

此函式接受一個引數,表示我們要指向的位置。

返回值

它返回對deque容器中指定位置元素的引用。

示例

Input: deque<int> mydeque = {10, 20, 30, 40};
mydeque.at(2);

輸出

第2個位置的元素是30。

示例

 線上演示

#include <deque>
#include <iostream>
using namespace std;
int main(){
   deque<int> myDeque;
   myDeque.push_back(90);
   myDeque.push_back(80);
   myDeque.push_back(70);
   myDeque.push_back(60);
   myDeque.push_back(50);
   myDeque.push_back(40);
   myDeque.push_back(30);
   myDeque.push_back(20);
   myDeque.push_back(10);
   for (int i = 0; i < myDeque.size(); ++i){
      if (i % 2 == 0){
         cout << myDeque.at(i);
         cout << " ";
      }
   }
   return 0;
}

輸出

如果我們執行上面的程式碼,它將生成以下輸出:

90 70 50 30 10

什麼是deque::swap()?

deque::swap()是C++ STL中的一個內建函式,宣告在<deque>標頭檔案中。deque::swap()用於交換一個deque容器與另一個deque容器的內容。此函式接受另一個deque容器的物件,我們希望將其資料與關聯的deque容器交換。

語法

mydeque1.swap(type_t& mydeque2);

引數

此函式接受一個引數,即我們要與其關聯的deque交換資料的deque的引用。

返回值

它不返回任何值。

示例

Input: deque<int> even = {2, 4, 6, 8};
deque<int> odd = {1, 3, 5, 7};
even.swap(odd);
Output:
Even deque: 1 3 5 7
Odd deque: 2 4 6 8

示例

 線上演示

#include <deque>
#include <iostream>
using namespace std;
int main(){
   deque<int> Deque_1 = { 1, 2, 3, 4 };
   deque<int> Deque_2 = { 3, 5, 7, 9 };
   Deque_1.swap(Deque_2);
   cout<<"Deque_1 elements after swapping : ";
   for (auto i = Deque_1.begin(); i< Deque_1.end(); ++i)
   cout << *i << " ";
   cout <<endl<<"Deque_2 elements after swapping : ";
   for (auto i = Deque_2.begin(); i<Deque_2.end(); ++i)
   cout << *i << " ";
   return 0;
}

輸出

如果我們執行上面的程式碼,它將生成以下輸出:

Deque_1 elements after swapping : 3 5 7 9
Deque_2 elements after swapping : 1 2 3 4

更新於:2020年3月5日

142次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.