Chuyển tới nội dung chính

std::deque::resize

#include <deque>

void resize(size_type count);
void resize(size_type count, const value_type& value);

Thay đổi kích thước của deque.

Tham số

count

  • Kích thước mới của deque (số lượng phần tử).
  • Nếu count nhỏ hơn kích thước hiện tại, các phần tử thừa ở cuối deque sẽ bị xóa.
  • Nếu count lớn hơn kích thước hiện tại, các phần tử mới sẽ được thêm vào cuối deque và được khởi tạo bằng giá trị mặc định của kiểu phần tử (ví dụ: 0 cho int, "" cho string).

value

  • Giá trị để khởi tạo các phần tử mới được thêm vào (nếu có).
  • Nếu count nhỏ hơn kích thước hiện tại, các phần tử thừa ở cuối deque sẽ bị xóa.
  • Nếu count lớn hơn kích thước hiện tại, các phần tử mới sẽ được thêm vào cuối deque và được khởi tạo bằng giá trị value.

Giá trị trả về

Không có giá trị trả về

Đặc điểm

  1. resize() thay đổi trực tiếp số lượng phần tử trong deque.
  2. resize() có thể xóa bớt các phần tử ở cuối hoặc thêm các phần tử mới vào cuối deque, tùy thuộc vào count mới.
  3. Các phần tử mới được thêm vào (nếu có) sẽ được khởi tạo bằng giá trị mặc định của kiểu phần tử hoặc bằng giá trị value được cung cấp.
  4. resize() chỉ ảnh hưởng đến số lượng phần tử, không thay đổi giá trị của các phần tử đã tồn tại trước khi gọi resize().
  5. Độ phức tạp: Độ phức tạp của resize() phụ thuộc vào sự chênh lệch giữa kích thước cũ và mới.
    • Nếu count nhỏ hơn kích thước hiện tại, độ phức tạp là O(n), với n là số phần tử bị xóa.
    • Nếu count lớn hơn kích thước hiện tại, độ phức tạp là O(m), với m là số phần tử được thêm mới.

Ví dụ

#include <iostream>
#include <deque>

int main() {
std::deque<int> myDeque = {1, 2, 3, 4, 5};

std::cout << "Original size: " << myDeque.size() << '\n'; // Output: Original size: 5

myDeque.resize(3);
std::cout << "Size after resize(3): " << myDeque.size() << '\n'; // Output: Size after resize(3): 3
std::cout << "Elements after resize(3):";
for (int x : myDeque) std::cout << ' ' << x; // Output: Elements after resize(3): 1 2 3
std::cout << '\n';

myDeque.resize(6);
std::cout << "Size after resize(6): " << myDeque.size() << '\n'; // Output: Size after resize(6): 6
std::cout << "Elements after resize(6):";
for (int x : myDeque) std::cout << ' ' << x; // Output: Elements after resize(6): 1 2 3 0 0 0
std::cout << '\n';

myDeque.resize(8, 99);
std::cout << "Size after resize(8, 99): " << myDeque.size() << '\n'; // Output: Size after resize(8, 99): 8
std::cout << "Elements after resize(8, 99):";
for (int x : myDeque) std::cout << ' ' << x; // Output: Elements after resize(8, 99): 1 2 3 0 0 0 99 99
std::cout << '\n';

return 0;
}

Các hàm liên quan

sizeLấy số lượng phần tử hiện có trong deque
clearXóa tất cả các phần tử khỏi deque, làm cho deque trở thành rỗng
eraseXóa một hoặc nhiều phần tử khỏi deque tại một vị trí cụ thể hoặc trong một phạm vi
max_sizeTrả về số lượng phần tử tối đa mà deque có thể chứa