ฟังก์ชัน Vector Erase() ใน C ++

Fangkchan Vector Erase Ni C



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

ไวยากรณ์:

ไวยากรณ์สองประเภทของฟังก์ชันนี้ระบุไว้ด้านล่าง







ตัววนซ้ำลบ ( ตำแหน่งตัววนซ้ำ ) ;

ฟังก์ชันลบ () ด้านบนใช้เพื่อลบองค์ประกอบเดียวออกจากเวกเตอร์ และส่งคืนตัววนซ้ำ และชี้ไปยังองค์ประกอบที่ตามด้วยองค์ประกอบที่ถูกลบล่าสุด



ตัววนซ้ำลบ ( ตัววนซ้ำ beginning_position ตัววนซ้ำ ending_position ) ;

ฟังก์ชันลบ () ด้านบนใช้เพื่อลบองค์ประกอบหลายรายการออกจากเวกเตอร์ตามตำแหน่งที่กล่าวถึงในอาร์กิวเมนต์ที่หนึ่งและที่สองของฟังก์ชันนี้



ข้อกำหนดเบื้องต้น:

ก่อนที่จะตรวจสอบตัวอย่างของบทช่วยสอนนี้ คุณต้องตรวจสอบว่ามีการติดตั้งคอมไพเลอร์ g++ อยู่ในระบบหรือไม่ หากคุณใช้ Visual Studio Code ให้ติดตั้งส่วนขยายที่จำเป็นเพื่อคอมไพล์ซอร์สโค้ด C++ เพื่อสร้างโค้ดที่ปฏิบัติการได้ ที่นี่ มีการใช้แอปพลิเคชัน Visual Studio Code เพื่อคอมไพล์และรันโค้ด C++ การใช้งานฟังก์ชัน Erase() แบบต่างๆ เพื่อแทรกองค์ประกอบลงในเวกเตอร์ได้แสดงไว้ด้านล่าง





ตัวอย่างที่ 1: ลบองค์ประกอบองค์ประกอบแรก

สร้างไฟล์ C++ ด้วยโค้ดต่อไปนี้เพื่อลบองค์ประกอบออกจากจุดเริ่มต้นของเวกเตอร์ มีการใช้เวกเตอร์ของค่าสตริงในโค้ด ค่าของเวกเตอร์ได้รับการพิมพ์ก่อนและหลังการลบองค์ประกอบแรกออกจากเวกเตอร์โดยใช้ฟังก์ชันลบ () พร้อมพารามิเตอร์ตัวเดียว

//รวมไลบรารีที่จำเป็น

#รวม

#รวม <เวกเตอร์>

โดยใช้ เนมสเปซ มาตรฐาน ;

//แสดงค่าของเวกเตอร์

เป็นโมฆะ display_vector ( เวกเตอร์ < เชือก > ผลไม้ )

{

//เริ่มต้นตัวนับ

ภายใน เคาน์เตอร์ = 1 ;

//วนซ้ำและพิมพ์องค์ประกอบของเวกเตอร์โดยใช้การวนซ้ำ

สำหรับ ( อัตโนมัติ เขา = ผลไม้ เริ่ม ( ) ; เขา ! = ผลไม้ จบ ( ) ; เขา ++ )

{

//ตรวจสอบว่าองค์ประกอบเป็นองค์ประกอบสุดท้ายหรือไม่

ถ้า ( เคาน์เตอร์ ! = ผลไม้ ขนาด ( ) )

ศาล << * เขา << , ' ;

อื่น

ศาล << * เขา ;

//เพิ่มตัวนับขึ้น 1

เคาน์เตอร์ ++ ;

}

ศาล << สิ้นสุด ;

}

ภายใน หลัก ( เป็นโมฆะ ) {

//ประกาศเวกเตอร์ของข้อมูลสตริง

เวกเตอร์ < เชือก > ผลไม้ = { 'ส้ม' , 'กล้วย' , 'มะม่วง' , “แจ็คฟรุต” , ลิ้นจี่ } ;

//พิมพ์ค่าที่มีอยู่ของเวกเตอร์

ศาล << 'ค่าของเวกเตอร์ก่อนลบ: ' << สิ้นสุด ;

display_vector ( ผลไม้ ) ;

//ลบองค์ประกอบแรกออกจากเวกเตอร์

ผลไม้ ลบ ( ผลไม้ เริ่ม ( ) ) ;

//พิมพ์ค่าที่มีอยู่ของเวกเตอร์หลังจากลบออก

ศาล << ' \n ค่าของเวกเตอร์หลังลบ: ' << สิ้นสุด ;

display_vector ( ผลไม้ ) ;

กลับ 0 ;

}

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันโค้ดด้านบน



ตัวอย่างที่ 2: ลบองค์ประกอบหลายรายการ

สร้างไฟล์ C++ ด้วยโค้ดต่อไปนี้เพื่อลบองค์ประกอบหลายรายการออกจากเวกเตอร์โดยใช้ฟังก์ชันลบ () มีการใช้เวกเตอร์ของค่าจำนวนเต็มในโค้ด มีการใช้ตัววนซ้ำสองตัวที่นี่เพื่อกำหนดช่วงขององค์ประกอบที่ถูกลบออกจากเวกเตอร์ ฟังก์ชันลบ () ใช้กับพารามิเตอร์สองตัวเพื่อลบองค์ประกอบหลายรายการออกจากเวกเตอร์

//รวมไลบรารีที่จำเป็น

#รวม <เวกเตอร์>

#รวม

โดยใช้ เนมสเปซ มาตรฐาน ;

//แสดงเวกเตอร์

เป็นโมฆะ display_vector ( เวกเตอร์ < ภายใน > ตัวเลข )

{

//พิมพ์ค่าของเวกเตอร์โดยใช้การวนซ้ำ

สำหรับ ( อัตโนมัติ เขา = ตัวเลข เริ่ม ( ) ; เขา ! = ตัวเลข จบ ( ) ; เขา ++ )

ศาล << * เขา << ' ' ;

//เพิ่มบรรทัดใหม่

ศาล << ' \n ' ;

}

ภายใน หลัก ( ) {

//ประกาศเวกเตอร์ของข้อมูลจำนวนเต็ม

เวกเตอร์ < ภายใน > intArray { 678 , 435 , 960 , 231 , 800 , 387 , 634 , 267 , 409 , 294 } ;

//พิมพ์ค่าที่มีอยู่ของเวกเตอร์

ศาล << 'ค่าของเวกเตอร์ก่อนลบ: ' << สิ้นสุด ;

display_vector ( intArray ) ;

//ประกาศตัววนซ้ำสองตัวเพื่อลบช่วงขององค์ประกอบออกจากเวกเตอร์

เวกเตอร์ < ภายใน > :: ตัววนซ้ำ startEle, endEle ;

//ตั้งค่าตัววนซ้ำไปที่ตำแหน่งแรก

เริ่มต้นพวกเขา = intArray. เริ่ม ( ) ;

//เพิ่มตัววนซ้ำเริ่มต้นขึ้น 2

ก้าวหน้า ( เริ่มพวกเขา 2 ) ;

//ตั้งค่าตัววนซ้ำไปที่ตำแหน่งสุดท้าย

จบเอเล = intArray. จบ ( ) ;

//ลดตัววนซ้ำลง 3

ก้าวหน้า ( สิ้นสุดเอเล, - - 3 ) ;

//ลบช่วงขององค์ประกอบ

intArray. ลบ ( startEle, endEle ) ;

//พิมพ์ค่าที่มีอยู่ของเวกเตอร์หลังจากลบออก

ศาล << ' \n ค่าของเวกเตอร์หลังลบ: ' << สิ้นสุด ;

display_vector ( intArray ) ;

กลับ 0 ;

}

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันโค้ดด้านบน ตามช่วงของตัววนซ้ำ องค์ประกอบจากตำแหน่งที่ 3 ถึงตำแหน่งที่ 7 ของเวกเตอร์จะถูกลบออก

ตัวอย่างที่ 3: ลบองค์ประกอบเฉพาะ

สร้างไฟล์ C++ ด้วยโค้ดต่อไปนี้เพื่อลบองค์ประกอบเฉพาะของเวกเตอร์โดยใช้ฟังก์ชันลบ () มีการประกาศเวกเตอร์ขององค์ประกอบจำนวนเต็ม 7 ตัวในโค้ด ต่อไป ลูป 'for' ใช้เพื่อวนซ้ำองค์ประกอบเวกเตอร์และลบองค์ประกอบเหล่านั้นออกจากเวกเตอร์ที่หารด้วย 5 ไม่ลงตัว

//รวมไลบรารีที่จำเป็น

#รวม

#รวม <เวกเตอร์>

โดยใช้ เนมสเปซ มาตรฐาน ;

ภายใน หลัก ( )

{

//ประกาศเวกเตอร์ของข้อมูลจำนวนเต็ม

เวกเตอร์ < ภายใน > ตัวเลข = { 78 , สี่ห้า , 67 , 25 , 98 , 75 , 52 } ;

ศาล << “ค่าของเวกเตอร์ก่อนลบ: \n ' ;

สำหรับ ( ภายใน ค่าคงที่ & ฉัน : : ตัวเลข ) {

ศาล << ฉัน << '' ;

}

ศาล << สิ้นสุด ;

//ลบตัวเลขออกจากเวกเตอร์ที่หารด้วย 5 ไม่ลงตัว

สำหรับ ( อัตโนมัติ เขา = ตัวเลข เริ่ม ( ) ; เขา ! = ตัวเลข จบ ( ) ; เขา ++ )

{

//ตรวจสอบว่าตัวเลขหารด้วย 5 ลงตัวหรือไม่

ถ้า ( * เขา % 5 ! = 0 )

{

// ลบองค์ประกอบตามตัววนซ้ำ

ตัวเลข ลบ ( เขา -- ) ;

}

}

ศาล << “ค่าของเวกเตอร์หลังลบ: \n ' ;

สำหรับ ( ภายใน ค่าคงที่ & ฉัน : : ตัวเลข ) {

ศาล << ฉัน << '' ;


}


ศาล << สิ้นสุด ;


กลับ 0 ;

}

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันโค้ดด้านบน ผลลัพธ์ที่ได้แสดงให้เห็นว่าเวกเตอร์มีองค์ประกอบที่หารด้วย 5 เท่านั้น และองค์ประกอบอื่นๆ ได้ถูกลบออกไปแล้ว

บทสรุป:

มีการแสดงการใช้งานฟังก์ชัน Erase() ที่แตกต่างกันในบทช่วยสอนนี้เพื่อลบองค์ประกอบเวกเตอร์ C++ มีฟังก์ชันอื่นๆ มากมายในการลบองค์ประกอบออกจากเวกเตอร์ และฟังก์ชันเหล่านั้นสามารถลบองค์ประกอบเดียวในแต่ละครั้งได้ แต่ทั้งองค์ประกอบเดี่ยวและหลายองค์ประกอบจากตำแหน่งใดๆ ของเวกเตอร์สามารถลบออกได้โดยใช้ฟังก์ชัน vector Erase()