Computer >> Máy Tính >  >> Lập trình >> C ++

Liệt kê hàm resize () trong C ++ STL

Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và các ví dụ của hàm list ::resize () trong C ++.

Danh sách trong STL là gì

Danh sách là một cấu trúc dữ liệu cho phép chèn và xóa theo thời gian liên tục ở bất kỳ đâu theo trình tự. Danh sách được triển khai dưới dạng danh sách được liên kết kép. Danh sách cho phép phân bổ bộ nhớ không liền kề. Danh sách thực hiện trích xuất chèn và di chuyển phần tử ở bất kỳ vị trí nào trong vùng chứa tốt hơn so với mảng, vectơ và deque. Trong Danh sách, truy cập trực tiếp vào phần tử chậm và danh sách tương tự như forward_list, nhưng các đối tượng danh sách chuyển tiếp là danh sách được liên kết đơn và chúng chỉ có thể được lặp lại về phía trước.

list ::resize () là gì?

list ::resize () là một hàm có sẵn trong C ++ STL được khai báo trong tệp tiêu đề. resize () được sử dụng để thay đổi kích thước của vùng chứa danh sách. Nó thay đổi kích thước vùng chứa để nó chứa số phần tử mà chúng ta đưa ra trong đối số của hàm.

Cú pháp

list_name.resize(int n);

hoặc

list_name.resize(int n, const value_type &val);

Hàm này có thể chấp nhận một hoặc hai tham số bên trong.

Tham số

  • n - Đây là kiểu số nguyên xác định kích thước vùng chứa mới (số phần tử).

  • val - Đối tượng có nội dung sẽ được sao chép vào tất cả các khoảng trống trong vùng chứa.

Giá trị trả về

Hàm này không trả về gì. Nó sẽ chỉ thay đổi kích thước vùng chứa.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main(){
   //create a list
   list<int> myList;
   //insert elements to the list
   myList.push_back(1);
   myList.push_back(2);
   myList.push_back(3);
   myList.push_back(4);
   //elemets in th list before Resize
   cout << "List elements are : ";
   for (auto i = myList.begin(); i!= myList.end(); i++)
      cout << *i << " ";
   //Resizing list
   myList.resize(5);
   cout<<"\nList after resize: ";
   for (auto i = myList.begin(); i!= myList.end(); i++)
      cout << *i << " ";
   //Resizing list again
   myList.resize(6);
   cout<<"\nList after resizing it again : ";
   for (auto i = myList.begin(); i != myList.end(); i++)
      cout << *i << " ";
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên thì nó sẽ tạo ra kết quả sau

List elements are : 1 2 3 4
List after resize : 1 2 3 4 0
List after resizing it again : 1 2 3 4 0 0