ในบทความนี้เราจะอภิบายการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน list::resize() ใน C++
List ใน STL คืออะไร
List เป็นโครงสร้างข้อมูลที่อนุญาตให้แทรกและลบได้ในเวลาคงที่ที่ตำแหน่งใดก็ตามในลำดับ List ถูกนำไปใช้เป็น doubly linked lists List อนุญาตการจัดสรรหน่วยความจำแบบไม่ต่อเนื่อง List ทำงานการแทรก ดึง และย้ายองค์ประกอบได้ดีกว่า array, vector และ deque ใน List การเข้าถึงองค์ประกอบโดยตรงช้า และ list คล้ายกับ forward_list แต่วัตถุ forward_list เป็น singly linked lists และสามารถวนรอบได้เฉพาะไปข้างหน้า
list::resize() คืออะไร?
list::resize() เป็นฟังก์ชันในตัวใน C++ STL ซึ่งประกาศในไฟล์หัวเรื่อง resize() ใช้ปรับขนาดคอนเทนเนอร์ list มันปรับขนาดคอนเทนเนอร์ ให้มีจำนวนองค์ประกอบเท่ากับที่เราระบุในอาร์กิวเมนต์ของฟังก์ชัน
ไวยากรณ์
list_name.resize(int n);
หรือ
list_name.resize(int n, const value_type &val);
ฟังก์ชันนี้รับพารามิเตอร์ได้ 1 หรือ 2 ตัว
พารามิเตอร์
- n - เป็นจำนวนเต็มที่กำหนดขนาดคอนเทนเนอร์ใหม่ (จำนวนองค์ประกอบ)
- val - ออบเจ็กต์ที่เนื้อหาจะถูกคัดลอกไปยังช่องว่างทั้งหมดในคอนเทนเนอร์
ค่าที่คืน
ฟังก์ชันนี้ไม่คืนค่าอะไร จะแค่ปรับขนาดคอนเทนเนอร์
ตัวอย่าง
#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);
// elements in the 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;
}เอาต์พุต
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