Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

forward_list::clear() และ forward_list::erase_after() ใน C++ STL


ในบทความนี้เราจะพูดถึงการทำงาน ไวยากรณ์และตัวอย่างของ forward_list::clear() และ forward_list::erase_after() ฟังก์ชันใน C++

Forward_list ใน STL คืออะไร

รายการส่งต่อคือคอนเทนเนอร์ลำดับที่อนุญาตให้ดำเนินการแทรกและลบเวลาคงที่ที่ใดก็ได้ภายในลำดับ รายการส่งต่อถูกนำไปใช้เป็นรายการที่เชื่อมโยงโดยลำพัง การจัดลำดับจะถูกเก็บไว้โดยการเชื่อมโยงไปยังแต่ละองค์ประกอบของลิงก์ไปยังองค์ประกอบถัดไปในลำดับ

forward_list::clear() คืออะไร

forward_list::clear() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งประกาศไว้ในไฟล์ส่วนหัว clear() ใช้เมื่อเราต้องลบองค์ประกอบทั้งหมดของรายการส่งต่อในครั้งเดียว ฟังก์ชันนี้จะทำลายองค์ประกอบทั้งหมดของรายการส่งต่อและทำให้ขนาดของรายการส่งต่อเป็นศูนย์

ไวยากรณ์

flist_container1.clear();

พารามิเตอร์

ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ

ผลตอบแทนที่ได้รับ

ฟังก์ชันนี้ไม่ส่งคืนสิ่งใด

ตัวอย่าง

Input: forward_list<int> forward = {1, 2, 3, 4};
      forward.clear();
forward.size();
      Output: 0

ตัวอย่าง

#include <forward_list>
#include <iostream>
using namespace std;
int main(){
   forward_list<int> myList = { 10, 20, 30, 40 };
   myList.clear();
   for (auto i = myList.begin(); i!= myList.end(); ++i)
      cout << ' ' << *i;
      cout<<"List is cleared";
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

List is cleared

forward_list::erase_after() คืออะไร

forward_list::erase_after() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งประกาศไว้ในไฟล์ส่วนหัว Erase_after() ใช้เมื่อเราต้องการลบองค์ประกอบในรายการไปข้างหน้าหลังจากตำแหน่งเฉพาะ ขนาดของรายการส่งต่อจะลดลงตามจำนวนองค์ประกอบที่นำออก

ไวยากรณ์

flist_container1.erase_after(unsigned int position);

พารามิเตอร์

ฟังก์ชันนี้ยอมรับหนึ่งพารามิเตอร์ซึ่งเป็นตำแหน่งที่เราต้องการลบองค์ประกอบ

ผลตอบแทนที่ได้รับ

ฟังก์ชันนี้ไม่ส่งคืนสิ่งใด

ตัวอย่าง

Input: forward_list<int> forward = {1, 2, 3, 4};
      forward.erased_after(2);
Output:
      Forward list after erase_after() = 1 2 3

ตัวอย่าง

#include <forward_list>
#include <iostream>
using namespace std;
int main(){
   forward_list<int> myList = { 10, 20, 30, 40, 50 };
   forward_list<int>::iterator i;
   i = myList.begin();
   myList.erase_after(i);
      cout<<"Elements are : ";
   for (auto i = myList.begin(); i!= myList.end(); ++i)
      cout << ' ' << *i;
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

Elements are : 10 30 40 50