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

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


Bài viết trình bày chức năng của deque::resize() 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.

deque::resize() là gì?

Hàm deque::resize() thay đổi kích thước deque. Nếu kích thước mới lớn hơn kích thước hiện tại, các phần tử mới được chèn vào cuối (giá trị mặc định 0 cho int). Nếu kích thước mới nhỏ hơn, các phần tử thừa ở cuối bị xóa.

Cú pháp

deque_name.resize(n)

n: kích thước mới của deque.

Ví dụ

Đầu vào Kích thước hiện tại: 5, Deque: 12 13 14 15 16

Đầu ra Kích thước mới: 7, Deque mới: 12 13 14 15 16 0 0

Cách tiếp cận

  • Khai báo deque
  • Kiểm tra size
  • In deque
  • Gọi resize()
  • In deque sau resize

Ví dụ 1

#include <iostream>
#include <deque>
using namespace std;

int main() {
    deque<int> dq = {85, 87, 88, 89, 90};
    cout << "Size of deque: " << dq.size() << "\n";
    cout << "Deque: ";
    for(auto x = dq.begin(); x != dq.end(); ++x)
        cout << *x << " ";
    dq.resize(7);
    cout << "\nDeque after resize: " << dq.size() << "\n";
    cout << "New Deque: ";
    for(auto x = dq.begin(); x != dq.end(); ++x)
        cout << *x << " ";
    return 0;
}

Kết quả

Size of deque: 5
Deque: 85 87 88 89 90
Deque after resize: 7
New Deque: 85 87 88 89 90 0 0

Ví dụ 2

#include <iostream>
#include <deque>
using namespace std;

int main() {
    deque<int> dq = {14, 15, 16, 17, 18, 19, 20};
    cout << "Size of deque: " << dq.size() << "\n";
    cout << "Deque: ";
    for(auto x = dq.begin(); x != dq.end(); ++x)
        cout << *x << " ";
    dq.resize(5);
    cout << "\nDeque after resize: " << dq.size() << "\n";
    cout << "New Deque: ";
    for(auto x = dq.begin(); x != dq.end(); ++x)
        cout << *x << " ";
    return 0;
}

Kết quả

Size of deque: 7
Deque: 14 15 16 17 18 19 20
Deque after resize: 5
New Deque: 14 15 16 17 18