Lấy và thay đổi kích thước của forward_list trong C++ (distance, resize) | Laptrinhcanban.com

Lấy và thay đổi kích thước của forward_list trong C++ (distance, resize)

Hướng dẫn cách lấy và thay đổi kích thước forward_list trong C++. Bạn sẽ học được cách dùng hàm distance và hàm resize để lấy kích thước cũng như thay đổi kích thước của forward_list trong C++ sau bài học này.

Lấy kích thước forward_list trong C++ bằng hàm distance

Khác với các với các Containers library khác như list hay vector vốn dùng hàm size() để lấy số phần tử, thì trong forward_list lại không tồn tại hàm size(), do đó chúng ta cần phải sử dụng tới hàm thay thế là template function là hàm distance().

Hàm distance là một hàm thành viên trong class std:iterator, có tác dụng đếm số phần tử trong một phạm vi chỉ định của đối tượng trong C++.

Chúng ta sử dụng hàm distance để lấy kích thước forward_list trong C++ với cú pháp như sau:

std::distance(f_lst.begin(), f_lst.end())

Trong đó f_lst là forward_list lấy số phần tử chứa trong nó.

Ví dụ cụ thể, chúng ta lấy kích thước forward_list trong C++ bằng hàm distance như sau:

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

int main ()
{
forward_list<int> f_lst{3, 1, 4,5};

int length = distance(f_lst.begin(), f_lst.end());
cout<< length <<endl;
return 0;
}

Kết quả:

4

Thay đổi kích thước forward_list trong C++ bằng hàm resize

Hàm resize là một hàm thành viên trong class std:forward_list, có tác dụng thay đổi kích thước ban đầu của forward_list trong C++.

Cú pháp của hàm resize trong C++ như sau:

f_lst.resize(n);

Trong đó f_lst là forward_list cần thay đổi kích thước, và n là kích thước cần thay đổi.

Nếu n nhỏ hơn kích thước(số phần tử) ban đầu của forward_list thì các phần tử bị thừa sẽ bị xóa đi.

Ngược lại nếu n lớn hơn kích thước(số phần tử) ban đầu của forward_list, các giá trị mặc định tùy thuộc vào kiểu dữ liệu sẽ được thêm vào forward_list cho đủ độ dài. Ví dụ nếu forward_list thuộc kiểu số như int hay double thì số 0 sẽ được thêm vào. Còn nếu forward_list thuộc kiểu chữ như char hay string, giá trị trống sẽ được thêm vào.

Ví dụ cụ thể, chúng ta thay đổi kích thước forward_list trong C++ bằng hàm distance như sau:

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

//Tạo hàm xuất forward_list
void dump(forward_list<int>& f_lst)
{
for (auto x: f_lst) {
cout << " "<< x ;
}
cout << endl;
}

int main ()
{
forward_list<int> f_lst{3, 1, 4,5};
dump(f_lst);


/*Thay đổi kích thước nhỏ hơn ban đầu*/
f_lst.resize(2);
dump(f_lst);


/*Thay đổi kích thước lớn hơn ban đầu*/
f_lst.resize(10);
dump(f_lst);

return 0;
}

Kết quả:

3 1 4 5
3 1
3 1 0 0 0 0 0 0 0 0

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách lấy và thay đổi kích thước của forward_list trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.