Trong bài viết này, chúng ta sẽ thảo luận về cách hoạt động, cú pháp và ví dụ của các hàm deque::at() và deque::swap() trong C++ STL.
Deque là gì?
Deque (Double Ended Queue) là container trình tự cung cấp chức năng mở rộng và co hẹp ở cả hai đầu. Queue thông thường chỉ cho phép chèn ở cuối và xóa ở đầu, còn Deque cho phép chèn và xóa ở cả hai đầu.
deque::at() là gì?
deque::at() là hàm built-in trong C++ STL được khai báo trong header <deque>. Hàm trả về tham chiếu dùng để trỏ đến phần tử tại vị trí chỉ định trong deque. Hàm truy cập đến phần tử tại vị trí truyền làm tham số. Vị trí bắt đầu từ 0.
Cú pháp
mydeque.at(int position);
Tham số
Hàm nhận một tham số là vị trí cần trỏ đến.
Giá trị trả về
Trả về tham chiếu đến phần tử tại vị trí chỉ định của deque container.
Ví dụ
Input: deque<int> mydeque = {10, 20, 30, 40}; mydeque.at(2); Output: Element at 2 positions is 30.
Ví dụ hoàn chỉnh
#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;
}
Kết quả
90 70 50 30 10
deque::swap() là gì?
deque::swap() là hàm built-in trong C++ STL được khai báo trong header <deque>. Hàm dùng để hoán đổi nội dung của một deque container với deque khác. Hàm nhận một đối tượng deque container khác mà chúng ta muốn hoán đổi dữ liệu với deque liên kết.
Cú pháp
mydeque1.swap(type_t& mydeque2);
Tham số
Hàm nhận một tham số là tham chiếu đến deque cần hoán đổi dữ liệu.
Giá trị trả về
Hàm không trả về giá trị.
Ví dụ
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
Ví dụ hoàn chỉnh
#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;
}
Kết quả
Deque_1 elements after swapping : 3 5 7 9 Deque_2 elements after swapping : 1 2 3 4