Fungsi Vector Erase() dalam C++

Vector Erase Function C



Array digunakan untuk menyimpan banyak data, dan jumlah elemen array tidak dapat diubah pada saat run time. Masalah ini dapat diselesaikan dengan menggunakan vektor yang bekerja seperti array dinamis. Fungsi yang berbeda ada di kelas vektor untuk menambah dan menghapus elemen dari vektor. Fungsi erase() digunakan untuk menghapus satu atau lebih elemen dari vektor pada saat run time yang mengurangi ukuran vektor. Penggunaan fungsi ini telah dijelaskan dalam tutorial ini.

Sintaksis:

Dua jenis sintaks dari fungsi ini telah diberikan di bawah ini.







penghapusan iterator(posisi iterator);

Fungsi erase() di atas digunakan untuk menghapus satu elemen dari vektor, dan mengembalikan iterator, dan menunjuk ke elemen yang diikuti oleh elemen terakhir yang dihapus.



penghapusan iterator(iterator starting_position, iterator ending_position);

Fungsi erase() di atas digunakan untuk menghapus beberapa elemen dari vektor berdasarkan posisi yang disebutkan dalam argumen pertama dan kedua fungsi ini.



Prasyarat:

Sebelum memeriksa contoh tutorial ini, Anda harus memeriksa apakah kompiler g++ sudah terpasang atau tidak di sistem. Jika Anda menggunakan Visual Studio Code, maka instal ekstensi yang diperlukan untuk mengkompilasi kode sumber C++ untuk membuat kode yang dapat dieksekusi. Di sini, aplikasi Visual Studio Code telah digunakan untuk mengkompilasi dan mengeksekusi kode C++. Penggunaan yang berbeda dari fungsi erase() untuk menyisipkan elemen ke dalam vektor telah ditunjukkan di bawah ini.





Contoh-1: Hapus elemen elemen pertama

Buat file C++ dengan kode berikut untuk menghapus elemen dari awal vektor. Vektor nilai string telah digunakan dalam kode. Nilai vektor telah dicetak sebelum dan sesudah menghapus elemen pertama dari vektor menggunakan fungsi erase() dengan satu parameter.

//Sertakan perpustakaan yang diperlukan

#termasuk

#termasuk

menggunakan ruang namajam;

//Menampilkan nilai vektor

ruang kosongtampilan_vektor(vektor<rangkaian>buah-buahan)

{

//Inisialisasi penghitung

ke dalammenangkal= 1;

// Iterasi dan cetak elemen vektor menggunakan loop

untuk (mobildia=buah-buahan.mulai();dia!=buah-buahan.akhir();dia++)

{

//Periksa elemen adalah elemen terakhir atau tidak

jika(menangkal!=buah-buahan.ukuran())

biaya << *dia<< ',';

lain

biaya << *dia;

//Tambahkan penghitung sebesar 1

menangkal++;

}

biaya <<akhir;

}

ke dalamutama(ruang kosong) {

//Deklarasikan sebuah vektor dari data string

vektor<rangkaian>buah-buahan= { 'Jeruk','Pisang','Mangga','Buah Jack','Lichi' };

//Mencetak nilai vektor yang ada

biaya << 'Nilai vektor sebelum dihapus:' <<akhir;

tampilan_vektor(buah-buahan);

//Hapus elemen pertama dari vektor

buah-buahan.menghapus(buah-buahan.mulai());

//Cetak nilai vektor yang ada setelah dihapus

biaya << ' Nilai vektor setelah dihapus: ' <<akhir;

tampilan_vektor(buah-buahan);

kembali 0;

}

Keluaran:

Output berikut akan muncul setelah mengeksekusi kode di atas.



Contoh-2: Hapus beberapa elemen

Buat file C++ dengan kode berikut untuk menghapus beberapa elemen dari vektor menggunakan fungsi erase(). Sebuah vektor nilai integer telah digunakan dalam kode. Dua iterator telah digunakan di sini untuk mengatur rentang elemen yang dihapus dari vektor. Fungsi erase() telah digunakan dengan dua parameter untuk menghapus beberapa elemen dari vektor.

//Sertakan perpustakaan yang diperlukan

#termasuk

#termasuk

menggunakan ruang namajam;

//Menampilkan vektor

ruang kosongtampilan_vektor(vektor<ke dalam>angka)

{

//Mencetak nilai vektor menggunakan loop

untuk(mobildia=angka.mulai();dia!=angka.akhir() ;dia++)

biaya << *dia<< '';

//Tambahkan baris baru

biaya << ' ';

}

ke dalamutama() {

//Deklarasikan sebuah vektor dari data integer

vektor<ke dalam>intArray{ 678,435,960,231,800,387,634,267,409,294};

//Mencetak nilai vektor yang ada

biaya << 'Nilai vektor sebelum dihapus:' <<akhir;

tampilan_vektor(intArray);

//Deklarasikan dua iterator untuk menghapus rentang elemen dari vektor

vektor<ke dalam> :: pembuat ulangstartEle, endEle;

// Atur iterator ke posisi pertama

mulaiEle=intArray.mulai();

// Tingkatkan iterator awal dengan 2

maju(mulaiEle,2);

// Atur iterator ke posisi terakhir

akhirEle=intArray.akhir();

//Kurangi iterator akhir dengan 3

maju(akhirEle,-3);

//Hapus rentang elemen

intArray.menghapus(startEle, endEle);

//Cetak nilai vektor yang ada setelah dihapus

biaya << ' Nilai vektor setelah dihapus: ' <<akhir;

tampilan_vektor(intArray);

kembali 0;

}

Keluaran:

Output berikut akan muncul setelah mengeksekusi kode di atas. Menurut rentang iterator, elemen dari posisi ke-3 ke posisi ke-7 dari vektor telah dihapus.

Contoh-3: Hapus elemen tertentu

Buat file C++ dengan kode berikut untuk menghapus elemen tertentu dari vektor menggunakan fungsi erase(). Sebuah vektor dari 7 elemen integer telah dideklarasikan dalam kode. Selanjutnya, loop 'for' digunakan untuk mengiterasi elemen vektor dan menghapus elemen-elemen tersebut dari vektor yang tidak habis dibagi 5.

//Sertakan perpustakaan yang diperlukan

#termasuk

#termasuk

menggunakan ruang namajam;

ke dalamutama()

{

//Deklarasikan sebuah vektor dari data integer

vektor<ke dalam>angka= { 78,Empat. Lima,67,25,98,75,52 };

biaya << 'Nilai vektor sebelum dihapus: ';

untuk (ke dalam konstan &Saya:angka) {

biaya <<Saya<< '';

}

biaya <<akhir;

//Hapus angka-angka dari vektor yang tidak habis dibagi 5

untuk (mobildia=angka.mulai();dia!=angka.akhir();dia++)

{

//Periksa bilangan habis dibagi 5 atau tidak

jika (*dia% 5 != 0)

{

//Hapus elemen berdasarkan iterator

angka.menghapus(dia-);

}

}

biaya << 'Nilai vektor setelah dihapus: ';

untuk (ke dalam konstan &Saya:angka) {

biaya <<Saya<< '';


}


biaya <<akhir;


kembali 0;

}

Keluaran:

Output berikut akan muncul setelah mengeksekusi kode di atas. Outputnya menunjukkan bahwa vektor hanya berisi elemen yang dapat dibagi 5, dan elemen lainnya telah dihapus.

Kesimpulan:

Penggunaan fungsi erase() yang berbeda telah ditunjukkan dalam tutorial ini untuk menghapus elemen vektor. C++ memiliki banyak fungsi lain untuk menghapus elemen dari vektor, dan fungsi tersebut dapat menghapus elemen tunggal pada suatu waktu. Tetapi elemen tunggal dan ganda dari posisi vektor mana pun dapat dihapus dengan menggunakan fungsi vektor erase() .