Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Deque emplace() trong C++ STL


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