Συνάρτηση Vector Erase() σε C++

Synartese Vector Erase Se C



Ο πίνακας χρησιμοποιείται για την αποθήκευση πολλαπλών δεδομένων και ο αριθμός των στοιχείων του πίνακα δεν μπορεί να αλλάξει κατά το χρόνο εκτέλεσης. Αυτό το πρόβλημα μπορεί να λυθεί χρησιμοποιώντας ένα διάνυσμα που λειτουργεί σαν δυναμικός πίνακας. Υπάρχουν διαφορετικές συναρτήσεις στην κλάση vector για την προσθήκη και αφαίρεση ενός στοιχείου από το διάνυσμα. Η συνάρτηση erase() χρησιμοποιείται για την αφαίρεση ενός ή περισσότερων στοιχείων από το διάνυσμα κατά το χρόνο εκτέλεσης που μειώνει το μέγεθος του διανύσματος. Οι χρήσεις αυτής της λειτουργίας έχουν επεξηγηθεί σε αυτό το σεμινάριο.

Σύνταξη:

Δύο τύποι σύνταξης αυτής της συνάρτησης δίνονται παρακάτω.







επαναλήπτης διαγραφής ( θέση επαναλήπτη ) ;

Η παραπάνω συνάρτηση erase() χρησιμοποιείται για την αφαίρεση ενός μεμονωμένου στοιχείου από το διάνυσμα και επιστρέφει έναν επαναλήπτη και δείχνει στο στοιχείο που ακολουθείται από το τελευταίο διαγραμμένο στοιχείο.



επαναλήπτης διαγραφής ( iterator starting_position, iterator ending_position ) ;

Η παραπάνω συνάρτηση erase() χρησιμοποιείται για την αφαίρεση πολλαπλών στοιχείων από το διάνυσμα με βάση τη θέση που αναφέρεται στο πρώτο και το δεύτερο όρισμα αυτής της συνάρτησης.



Προαπαιτούμενο:

Πριν ελέγξετε τα παραδείγματα αυτού του σεμιναρίου, πρέπει να ελέγξετε ότι ο μεταγλωττιστής g++ είναι εγκατεστημένος ή όχι στο σύστημα. Εάν χρησιμοποιείτε τον κώδικα του Visual Studio, εγκαταστήστε τις απαραίτητες επεκτάσεις για να μεταγλωττίσετε τον πηγαίο κώδικα C++ για να δημιουργήσετε τον εκτελέσιμο κώδικα. Εδώ, η εφαρμογή Visual Studio Code έχει χρησιμοποιηθεί για τη μεταγλώττιση και εκτέλεση του κώδικα C++. Διαφορετικές χρήσεις της συνάρτησης erase() για την εισαγωγή στοιχείων σε ένα διάνυσμα φαίνονται παρακάτω.





Παράδειγμα-1: Αφαιρέστε το πρώτο στοιχείο στοιχείου

Δημιουργήστε ένα αρχείο C++ με τον ακόλουθο κώδικα για να αφαιρέσετε ένα στοιχείο από την αρχή του διανύσματος. Στον κώδικα έχει χρησιμοποιηθεί ένα διάνυσμα τιμών συμβολοσειράς. Οι τιμές του διανύσματος έχουν εκτυπωθεί πριν και μετά τη διαγραφή του πρώτου στοιχείου από το διάνυσμα χρησιμοποιώντας τη συνάρτηση erase() με μία παράμετρο.

//Συμπεριλάβετε τις απαραίτητες βιβλιοθήκες

#include

#include <διάνυσμα>

χρησιμοποιώντας χώρο ονομάτων std ;

//Εμφάνιση των τιμών του διανύσματος

κενός εμφάνιση_διάνυσμα ( διάνυσμα < σειρά > φρούτα )

{

//Αρχικοποίηση του μετρητή

ενθ μετρητής = 1 ;

//Επανάληψη και εκτύπωση των στοιχείων του διανύσματος χρησιμοποιώντας βρόχο

Για ( αυτο αυτός = φρούτα. αρχίζουν ( ) ; αυτός ! = φρούτα. τέλος ( ) ; αυτός ++ )

{

//Ελέγξτε ότι τα στοιχεία είναι το τελευταίο στοιχείο ή όχι

αν ( μετρητής ! = φρούτα. Μέγεθος ( ) )

cout << * αυτός << ',' ;

αλλού

cout << * αυτός ;

//Αυξήστε τον μετρητή κατά 1

μετρητής ++ ;

}

cout << endl ;

}

ενθ κύριος ( κενός ) {

//Δηλώστε ένα διάνυσμα δεδομένων συμβολοσειράς

διάνυσμα < σειρά > φρούτα = { 'Πορτοκάλι' , 'Μπανάνα' , 'Μάνγκο' , 'Τζακ Φρουτ' , Λυκείο } ;

//Εκτυπώστε τις υπάρχουσες τιμές του διανύσματος

cout << 'Οι τιμές του διανύσματος πριν την αφαίρεση: ' << endl ;

εμφάνιση_διάνυσμα ( φρούτα ) ;

//Κατάργηση του πρώτου στοιχείου από το διάνυσμα

φρούτα. εξάλειψη ( φρούτα. αρχίζουν ( ) ) ;

//Εκτυπώστε τις υπάρχουσες τιμές του διανύσματος μετά την αφαίρεση

cout << ' \n Οι τιμές του διανύσματος μετά την αφαίρεση: ' << endl ;

εμφάνιση_διάνυσμα ( φρούτα ) ;

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του παραπάνω κώδικα.



Παράδειγμα-2: Αφαιρέστε πολλά στοιχεία

Δημιουργήστε ένα αρχείο C++ με τον ακόλουθο κώδικα για να αφαιρέσετε τα πολλαπλά στοιχεία από το διάνυσμα χρησιμοποιώντας τη συνάρτηση erase(). Στον κώδικα έχει χρησιμοποιηθεί ένα διάνυσμα ακέραιων τιμών. Εδώ έχουν χρησιμοποιηθεί δύο επαναλήπτες για να ορίσετε το εύρος των στοιχείων που αφαιρέθηκαν από το διάνυσμα. Η συνάρτηση erase() έχει χρησιμοποιηθεί με δύο παραμέτρους για την αφαίρεση πολλαπλών στοιχείων από το διάνυσμα.

//Συμπεριλάβετε τις απαραίτητες βιβλιοθήκες

#include <διάνυσμα>

#include

χρησιμοποιώντας χώρο ονομάτων std ;

//Εμφάνιση του διανύσματος

κενός εμφάνιση_διάνυσμα ( διάνυσμα < ενθ > αριθμοί )

{

//Εκτυπώστε τις τιμές του διανύσματος χρησιμοποιώντας βρόχο

Για ( αυτο αυτός = αριθμοί. αρχίζουν ( ) ; αυτός ! = αριθμοί. τέλος ( ) ; αυτός ++ )

cout << * αυτός << '' ;

//Προσθήκη νέας γραμμής

cout << ' \n ' ;

}

ενθ κύριος ( ) {

//Δηλώστε ένα διάνυσμα ακέραιων δεδομένων

διάνυσμα < ενθ > intArray { 678 , 435 , 960 , 231 , 800 , 387 , 634 , 267 , 409 , 294 } ;

//Εκτυπώστε τις υπάρχουσες τιμές του διανύσματος

cout << 'Οι τιμές του διανύσματος πριν την αφαίρεση: ' << endl ;

εμφάνιση_διάνυσμα ( intArray ) ;

//Δηλώστε δύο επαναλήπτες για να αφαιρέσετε το εύρος των στοιχείων από το διάνυσμα

διάνυσμα < ενθ > :: επαναλήπτης startEle, endEle ;

//Ρυθμίστε τον επαναλήπτη στην πρώτη θέση

ξεκινήστε τα = intArray. αρχίζουν ( ) ;

//Αύξηση του αρχικού επαναλήπτη κατά 2

προκαταβολή ( ξεκινήστε τα, 2 ) ;

//Ρυθμίστε τον επαναλήπτη στην τελευταία θέση

endEle = intArray. τέλος ( ) ;

//Μειώστε τον επαναλήπτη κατά 3

προκαταβολή ( endEle, - 3 ) ;

//Κατάργηση της περιοχής των στοιχείων

intArray. εξάλειψη ( startEle, endEle ) ;

//Εκτυπώστε τις υπάρχουσες τιμές του διανύσματος μετά την αφαίρεση

cout << ' \n Οι τιμές του διανύσματος μετά την αφαίρεση: ' << endl ;

εμφάνιση_διάνυσμα ( intArray ) ;

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του παραπάνω κώδικα. Σύμφωνα με το εύρος των επαναληπτικών, τα στοιχεία από την 3η θέση έως την 7η θέση του διανύσματος έχουν αφαιρεθεί.

Παράδειγμα-3: Αφαιρέστε τα συγκεκριμένα στοιχεία

Δημιουργήστε ένα αρχείο C++ με τον ακόλουθο κώδικα για να αφαιρέσετε τα συγκεκριμένα στοιχεία του διανύσματος χρησιμοποιώντας τη συνάρτηση erase(). Στον κώδικα έχει δηλωθεί ένα διάνυσμα 7 ακέραιων στοιχείων. Στη συνέχεια, ο βρόχος «for» έχει χρησιμοποιηθεί για να επαναλάβει τα διανυσματικά στοιχεία και να αφαιρέσει εκείνα τα στοιχεία από το διάνυσμα που δεν διαιρούνται με το 5.

//Συμπεριλάβετε τις απαραίτητες βιβλιοθήκες

#include

#include <διάνυσμα>

χρησιμοποιώντας χώρο ονομάτων std ;

ενθ κύριος ( )

{

//Δηλώστε ένα διάνυσμα ακέραιων δεδομένων

διάνυσμα < ενθ > αριθμοί = { 78 , Τέσσερα πέντε , 67 , 25 , 98 , 75 , 52 } ;

cout << 'Οι τιμές του διανύσματος πριν την αφαίρεση: \n ' ;

Για ( ενθ συνθ & Εγώ : αριθμοί ) {

cout << Εγώ << '' ;

}

cout << endl ;

//Αφαιρέστε τους αριθμούς από το διάνυσμα που δεν διαιρούνται με το 5

Για ( αυτο αυτός = αριθμοί. αρχίζουν ( ) ; αυτός ! = αριθμοί. τέλος ( ) ; αυτός ++ )

{

//Ελέγξτε ότι ο αριθμός διαιρείται με το 5 ή όχι

αν ( * αυτός % 5 ! = 0 )

{

//Κατάργηση του στοιχείου με βάση τον επαναλήπτη

αριθμοί. εξάλειψη ( αυτός -- ) ;

}

}

cout << 'Οι τιμές του διανύσματος μετά την αφαίρεση: \n ' ;

Για ( ενθ συνθ & Εγώ : αριθμοί ) {

cout << Εγώ << '' ;


}


cout << endl ;


ΕΠΙΣΤΡΟΦΗ 0 ;

}

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του παραπάνω κώδικα. Η έξοδος δείχνει ότι το διάνυσμα περιέχει τα διαιρούμενα στοιχεία μόνο με το 5 και άλλα στοιχεία έχουν αφαιρεθεί.

Συμπέρασμα:

Σε αυτό το σεμινάριο έχουν παρουσιαστεί διαφορετικές χρήσεις της συνάρτησης erase() για την αφαίρεση διανυσματικών στοιχείων. Η C++ έχει πολλές άλλες συναρτήσεις για την αφαίρεση του στοιχείου από το διάνυσμα και αυτές οι συναρτήσεις μπορούν να αφαιρέσουν το μεμονωμένο στοιχείο κάθε φορά. Αλλά τόσο μεμονωμένα όσο και πολλαπλά στοιχεία από οποιαδήποτε θέση του διανύσματος μπορούν να αφαιρεθούν χρησιμοποιώντας τη συνάρτηση διανυσματικής διαγραφής().