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

โปรแกรม C ++ เพื่อลบรายการออกจากเวกเตอร์ที่กำหนด


สมมติว่าเรามีชุดขององค์ประกอบอยู่ภายในเวกเตอร์ เราจะต้องดำเนินการลบโดยใช้ฟังก์ชัน Erase() ของประเภทคลาสเวกเตอร์เพื่อลบโดยใช้ดัชนี และสุดท้ายแสดงองค์ประกอบที่เหลือ ฟังก์ชันการลบไม่รับดัชนีโดยตรง เราจะต้องส่งที่อยู่โดยส่งผ่าน v.begin()+index โดยที่ v คือเวกเตอร์ และ v.begin() คือที่อยู่ขององค์ประกอบแรก (องค์ประกอบที่ 0) ตอนนี้เมื่อเพิ่มดัชนีเข้าไป มันจะเคลื่อนไปยังองค์ประกอบที่มีอยู่ในดัชนีที่กำหนด

ดังนั้น หากอินพุตเป็น v =[5,8,6,3,2,0,1,4] ลบออกจากดัชนี 2, 6 และ 5 ผลลัพธ์จะเป็น [5,8,3,2,0 ] เนื่องจากอาร์เรย์เริ่มต้นคือ [5,8,6,3,2,0,1,4] ตอนนี้หลังจากลบองค์ประกอบออกจากดัชนี 2 จะเป็น [5,8,3,2,0,1,4] ตอนนี้ องค์ประกอบที่ดัชนี 6 คือ 4 ดังนั้นหลังจากลบอาร์เรย์จะเป็น [5,8,6,3,2,0,1] และตอนนี้รายการที่ดัชนี 5 เป็น 1 ดังนั้นหลังจากลบแล้วอาร์เรย์จะ เป็น [5,8,3,2,0].

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ลบองค์ประกอบที่ดัชนี 2 โดย v.erase(v.begin()+2)

  • ลบองค์ประกอบที่ดัชนี 6 โดย v.erase(v.begin()+6)

  • ลบองค์ประกอบที่ดัชนี 5 โดย v.erase(v.begin()+5)

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
   vector<int> v = {5,8,6,3,2,0,1,4};
   v.erase(v.begin()+2);
   v.erase(v.begin()+6);
   v.erase(v.begin()+5);
   for(int i = 0; i<v.size(); i++){
       cout << v[i] << " ";
   }
}

อินพุต

{5,8,6,3,2,0,1,4}

ผลลัพธ์

5 8 3 2 0