Bài viết trình bày chức năng của hàm insert() của deque trong C++ STL.
Deque là gì?
Deque (Double Ended Queue) là hàng đới hai đầu, là container trình tự cho phép mở rộng và thu hẹp ở cả hai đầu. Khác với queue thông thường chỉ cho phép chèn ở cuối và xóa ở đầu, deque cho phép chèn/xóa ở cả hai đầu.
Hàm insert() là gì?
Hàm deque::insert() dùng để chèn phần tử vào deque tại vị trí chỉ định. Có 3 nạp chồng:
- Chèn một phần tử tại vị trí iterator
- Chèn n bản sao của một phần tử
- Chèn một dãy phần tử từ iterator first đến last
Cú pháp
deque_name.insert(iterator position, const value_type& value) deque_name.insert(iterator position, size_type n, const value_type& value) deque_name.insert(iterator position, iterator first, iterator last)
Tham số
- value: phần tử mới cần chèn
- n: số lượng phần tử cần chèn
- first, last: iterator chỉ dãy phần tử cần chèn
Giá trị trả về
Trả về iterator trỏ đến phần tử đầu tiên được chèn mới.
Ví dụ
Đầu vào Deque: 1 2 3 4 5
Đầu ra Deque mới: 1 1 2 3 4 5
Đầu vào Deque: 11 12 13 14 15
Đầu ra Deque mới: 11 12 12 12 13 14 15
Cách tiếp cận
- Khai báo deque
- In deque
- Gọi hàm insert()
Ví dụ 1
#include <iostream>
#include <deque>
using namespace std;
int main() {
deque<int> dq = {55, 84, 38, 66, 67};
cout << "Deque: ";
for(auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
auto it = dq.insert(dq.begin(), 22);
cout << "\nNew Deque: ";
for(auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
return 0;
}
Kết quả
Deque: 55 84 38 66 67 New Deque: 22 55 84 38 66 67
Ví dụ 2
#include <iostream>
#include <deque>
using namespace std;
int main() {
deque<char> dq = {'B', 'L', 'D'};
cout << "Deque: ";
for(auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
dq.insert(dq.begin() + 1, 2, 'O');
cout << "\nNew Deque: ";
for(auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
return 0;
}
Kết quả
Deque: B L D New Deque: B O O L D
Ví dụ 3
#include <iostream>
#include <deque>
#include <vector>
using namespace std;
int main() {
deque<int> dq = {65, 54, 32, 98, 55};
cout << "Deque: ";
for(auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
vector<int> v(3, 19);
dq.insert(dq.begin(), v.begin(), v.end());
cout << "\nNew Deque: ";
for(auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
return 0;
}
Kết quả
Deque: 65 54 32 98 55 New Deque: 19 19 19 65 54 32 98 55