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

Hàm deque::insert() trong C++ STL


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