Bài viết này trình bày chức năng của hàm deque::emplace() trong C++ STL.
Deque là gì?
Deque (Double Ended Queue) là container trình tự cung cấp khả năng mở rộng và thu hẹp ở cả hai đầu. Khác với queue thông thường (chèn cuối, xóa đầu), deque cho phép chèn/xóa ở cả hai đầu.
Hàm emplace() là gì?
Hàm emplace() chèn phần tử mới trước vị trí chỉ định trong deque, tăng kích thước deque thêm 1.
Cú pháp
iterator emplace(const_iterator position, value_type value);
Tham số
- Position – Vị trí trong container nơi chèn phần tử mới.
- Value – Giá trị mới cần chèn.
Giá trị trả về – Trả về iterator trỏ đến phần tử mới chèn.
Ví dụ minh họa
Input: Deque: 96 97 98 100 → Output: Deque mới: 96 97 98 99 100
Input: Deque: C P T A I N → Output: Deque mới: C A P T A I N
Cách tiếp cận
- Khai báo deque.
- In deque.
- Định nghĩa
emplace()với vị trí và giá trị. - In deque sau khi chèn.
Ví dụ code 1
// C++ code demo deque::emplace()
#include <iostream>
#include <deque>
using namespace std;
int main() {
deque<int> dq = {85, 87, 88, 89, 90};
cout << "Deque: ";
for (auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
auto it = dq.begin() + 1;
dq.emplace(it, 86);
cout << "\nDeque mới: ";
for (auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
return 0;
}
Kết quả
Deque: 85 87 88 89 90 Deque mới: 85 86 87 88 89 90
Ví dụ code 2
#include <iostream>
#include <deque>
using namespace std;
int main() {
deque<char> dq = {'L', 'A', 'C', 'K'};
cout << "Deque: ";
for (auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
dq.emplace(dq.begin(), 'B');
cout << "\nDeque mới: ";
for (auto x = dq.begin(); x != dq.end(); ++x)
cout << *x << " ";
return 0;
}
Kết quả
Deque: L A C K Deque mới: B L A C K