C++'da Vector Erase() İşlevi

C Da Vector Erase Islevi



Dizi birden fazla veriyi depolamak için kullanılır ve dizinin öğe sayısı çalışma zamanında değiştirilemez. Bu problem dinamik dizi gibi çalışan bir vektör kullanılarak çözülebilir. Vektör sınıfında, vektöre bir öğe eklemek ve vektörden bir öğeyi çıkarmak için farklı işlevler bulunur. Silme () işlevi, vektörün boyutunu küçülten çalışma zamanında vektörden bir veya daha fazla öğeyi kaldırmak için kullanılır. Bu fonksiyonun kullanımları bu eğitimde açıklanmıştır.

Sözdizimi:

Bu fonksiyonun iki tip söz dizimi aşağıda verilmiştir.







yineleyici silme ( yineleyici konumu ) ;

Yukarıdaki delete() işlevi, vektörden tek bir öğeyi kaldırmak için kullanılır ve bir yineleyici döndürür ve son silinen öğenin takip ettiği öğeyi işaret eder.



yineleyici silme ( yineleyici başlangıç_konumu, yineleyici bitiş_konumu ) ;

Yukarıdaki delete() işlevi, bu işlevin birinci ve ikinci bağımsız değişkenlerinde belirtilen konuma dayalı olarak vektörden birden fazla öğeyi kaldırmak için kullanılır.



Ön koşul:

Bu eğitimin örneklerini kontrol etmeden önce g++ derleyicisinin sistemde kurulu olup olmadığını kontrol etmelisiniz. Visual Studio Code kullanıyorsanız yürütülebilir kodu oluşturmak amacıyla C++ kaynak kodunu derlemek için gerekli uzantıları yükleyin. Burada C++ kodunu derlemek ve yürütmek için Visual Studio Code uygulaması kullanılmıştır. Bir vektöre eleman(lar) eklemek için delete() fonksiyonunun farklı kullanımları aşağıda gösterilmiştir.





Örnek-1: İlk eleman elemanını çıkarın

Vektörün başlangıcındaki bir öğeyi kaldırmak için aşağıdaki kodu içeren bir C++ dosyası oluşturun. Kodda dize değerlerinden oluşan bir vektör kullanılmıştır. Vektörün değerleri, vektörden ilk elemanın silinmesinden önce ve silindikten sonra tek parametre ile delete() fonksiyonu kullanılarak yazdırılmıştır.

//Gerekli kütüphaneleri dahil et

#include

#include

kullanarak ad alanı std ;

//Vektörün değerlerini göster

geçersiz ekran_vektörü ( vektör < sicim > meyveler )

{

//Sayacı başlatıyoruz

int tezgah = 1 ;

//Döngüyü kullanarak vektörün elemanlarını yineleyin ve yazdırın

için ( Oto O = meyveler. başlamak ( ) ; O ! = meyveler. son ( ) ; O ++ )

{

//Elemanların son eleman olup olmadığını kontrol edin

eğer ( tezgah ! = meyveler. boyut ( ) )

cout << * O << ', ' ;

başka

cout << * O ;

//Sayacı 1 artırıyoruz

tezgah ++ ;

}

cout << sonunda ;

}

int ana ( geçersiz ) {

//Dize verilerinin bir vektörünü tanımlayın

vektör < sicim > meyveler = { 'Turuncu' , 'Muz' , 'Mango' , 'Jack Meyvesi' , Lychee } ;

//Vektörün mevcut değerlerini yazdırıyoruz

cout << 'Vektörün kaldırılmadan önceki değerleri: ' << sonunda ;

ekran_vektörü ( meyveler ) ;

//Vektörden ilk elemanı çıkarıyoruz

meyveler. silmek ( meyveler. başlamak ( ) ) ;

//Kaldırdıktan sonra vektörün mevcut değerlerini yazdır

cout << ' \N Kaldırıldıktan sonra vektörün değerleri: ' << sonunda ;

ekran_vektörü ( meyveler ) ;

geri dönmek 0 ;

}

Çıktı:

Yukarıdaki kodu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.



Örnek-2: Birden fazla öğeyi kaldırın

Silme() işlevini kullanarak vektörden birden fazla öğeyi kaldırmak için aşağıdaki koda sahip bir C++ dosyası oluşturun. Kodda tam sayı değerlerinden oluşan bir vektör kullanılmıştır. Vektörden kaldırılan öğelerin aralığını ayarlamak için burada iki yineleyici kullanılmıştır. Silme() işlevi, vektörden birden fazla öğeyi kaldırmak için iki parametreyle kullanılmıştır.

//Gerekli kütüphaneleri dahil et

#include

#include

kullanarak ad alanı std ;

//Vektörü göster

geçersiz ekran_vektörü ( vektör < int > sayılar )

{

//Döngüyü kullanarak vektörün değerlerini yazdırıyoruz

için ( Oto O = sayılar. başlamak ( ) ; O ! = sayılar. son ( ) ; O ++ )

cout << * O << ' ' ;

//Yeni satır ekle

cout << ' \N ' ;

}

int ana ( ) {

//Tamsayı verilerinin bir vektörünü tanımlayın

vektör < int > intArray { 678 , 435 , 960 , 231 , 800 , 387 , 634 , 267 , 409 , 294 } ;

//Vektörün mevcut değerlerini yazdırıyoruz

cout << 'Vektörün kaldırılmadan önceki değerleri: ' << sonunda ;

ekran_vektörü ( intArray ) ;

//Öğelerin aralığını vektörden kaldırmak için iki yineleyici tanımlayın

vektör < int > :: yineleyici startEle, endEle ;

//Yineleyiciyi ilk konuma ayarla

onları başlat = intArray. başlamak ( ) ;

//Başlangıç ​​yineleyicisini 2 artır

ilerlemek ( onları başlat, 2 ) ;

//Yineleyiciyi son konuma ayarla

endEle = intArray. son ( ) ;

//Bitiş yineleyicisini 3 azalt

ilerlemek ( sonEle, - 3 ) ;

//Eleman aralığını kaldır

intArray. silmek ( startEle, endEle ) ;

//Kaldırdıktan sonra vektörün mevcut değerlerini yazdır

cout << ' \N Kaldırıldıktan sonra vektörün değerleri: ' << sonunda ;

ekran_vektörü ( intArray ) ;

geri dönmek 0 ;

}

Çıktı:

Yukarıdaki kodu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Yineleyicilerin aralığına göre vektörün 3. pozisyondan 7. pozisyona kadar olan elemanları kaldırılmıştır.

Örnek-3: Belirli öğeleri kaldırın

Silme() işlevini kullanarak vektörün belirli öğelerini kaldırmak için aşağıdaki koda sahip bir C++ dosyası oluşturun. Kodda 7 tamsayı öğeden oluşan bir vektör bildirildi. Daha sonra, 'for' döngüsü, vektör elemanlarını yinelemek ve 5'e bölünemeyen elemanları vektörden çıkarmak için kullanıldı.

//Gerekli kütüphaneleri dahil et

#include

#include

kullanarak ad alanı std ;

int ana ( )

{

//Tamsayı verilerinin bir vektörünü tanımlayın

vektör < int > sayılar = { 78 , Dört beş , 67 , 25 , 98 , 75 , 52 } ;

cout << 'Kaldırılmadan önce vektörün değerleri: \N ' ;

için ( int yapı & Ben : sayılar ) {

cout << Ben << '' ;

}

cout << sonunda ;

//5'e bölünemeyen sayıları vektörden çıkarıyoruz

için ( Oto O = sayılar. başlamak ( ) ; O ! = sayılar. son ( ) ; O ++ )

{

//Sayının 5'e bölünüp bölünmediğini kontrol edin

eğer ( * O % 5 ! = 0 )

{

// Yineleyiciye dayalı olarak öğeyi kaldır

sayılar. silmek ( O -- ) ;

}

}

cout << 'Kaldırıldıktan sonra vektörün değerleri: \N ' ;

için ( int yapı & Ben : sayılar ) {

cout << Ben << '' ;


}


cout << sonunda ;


geri dönmek 0 ;

}

Çıktı:

Yukarıdaki kodu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Çıktı, vektörün yalnızca 5'e bölünebilen elemanları içerdiğini ve diğer elemanların çıkarıldığını gösterir.

Çözüm:

Bu öğreticide vektör öğelerini kaldırmak için delete() işlevinin farklı kullanımları gösterilmiştir. C++, öğeyi vektörden kaldırmak için birçok başka işleve sahiptir ve bu işlevler, tek seferde tek öğeyi kaldırabilir. Ancak vektörün herhangi bir konumundaki hem tekli hem de çoklu öğeler, vektör silme() işlevi kullanılarak kaldırılabilir.