สมมติว่าเรามีชุดขององค์ประกอบอยู่ภายในเวกเตอร์ เราจะต้องดำเนินการลบโดยใช้ฟังก์ชัน 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