Hàm Erase Vector () trong C ++

Vector Erase Function C



Mảng được sử dụng để lưu trữ nhiều dữ liệu và không thể thay đổi số lượng phần tử của mảng tại thời điểm chạy. Vấn đề này có thể được giải quyết bằng cách sử dụng một vectơ hoạt động giống như một mảng động. Các hàm khác nhau tồn tại trong lớp vectơ để thêm và xóa một phần tử khỏi vectơ. Hàm xóa () được sử dụng để xóa một hoặc nhiều phần tử khỏi vectơ tại thời điểm chạy làm giảm kích thước của vectơ. Việc sử dụng chức năng này đã được giải thích trong hướng dẫn này.

Cú pháp:

Hai loại cú pháp của hàm này đã được đưa ra dưới đây.







xóa trình lặp(vị trí người lặp);

Hàm delete () ở trên được sử dụng để xóa một phần tử duy nhất khỏi vectơ và nó trả về một trình lặp và nó trỏ đến phần tử theo sau là phần tử bị xóa cuối cùng.



xóa trình lặp(trình lặp start_position, trình lặp end_position);

Hàm delete () ở trên được sử dụng để xóa nhiều phần tử khỏi vectơ dựa trên vị trí được đề cập trong đối số thứ nhất và thứ hai của hàm này.



Điều kiện tiên quyết:

Trước khi kiểm tra các ví dụ của hướng dẫn này, bạn phải kiểm tra trình biên dịch g ++ đã được cài đặt hay chưa trong hệ thống. Nếu bạn đang sử dụng Visual Studio Code, thì hãy cài đặt các phần mở rộng cần thiết để biên dịch mã nguồn C ++ nhằm tạo mã thực thi. Ở đây, ứng dụng Visual Studio Code đã được sử dụng để biên dịch và thực thi mã C ++. Các cách sử dụng khác nhau của hàm xóa () để chèn (các) phần tử vào vectơ đã được minh họa bên dưới.





Ví dụ-1: Loại bỏ phần tử phần tử đầu tiên

Tạo tệp C ++ với mã sau để xóa một phần tử khỏi đầu vectơ. Một vectơ của các giá trị chuỗi đã được sử dụng trong mã. Các giá trị của vectơ đã được in trước và sau khi xóa phần tử đầu tiên khỏi vectơ bằng cách sử dụng hàm xóa () với một tham số.

// Bao gồm các thư viện cần thiết

#bao gồm

#bao gồm

sử dụng không gian têngiờ;

// Hiển thị các giá trị của vectơ

vô hiệudisplay_vector(vectơ<dây>trái cây)

{

// Khởi tạo bộ đếm

NSquầy tính tiền= 1;

// Lặp lại và in các phần tử của vectơ bằng vòng lặp

(tự độnganh ta=trái cây.bắt đầu();anh ta!=trái cây.kết thúc();anh ta++)

{

// Kiểm tra các phần tử có phải là phần tử cuối cùng hay không

nếu như(quầy tính tiền!=trái cây.kích thước())

Giá cả << *anh ta<< ',';

khác

Giá cả << *anh ta;

// Tăng bộ đếm lên 1

quầy tính tiền++;

}

Giá cả <<endl;

}

NSchủ chốt(vô hiệu) {

// Khai báo một vector dữ liệu chuỗi

vectơ<dây>trái cây= { 'Quả cam','Chuối','Trái xoài','Jack Fruit','Lichi' };

// In các giá trị hiện có của vectơ

Giá cả << 'Các giá trị của vectơ trước khi loại bỏ:' <<endl;

display_vector(trái cây);

// Xóa phần tử đầu tiên khỏi vectơ

trái cây.tẩy xóa(trái cây.bắt đầu());

// In các giá trị hiện có của vectơ sau khi loại bỏ

Giá cả << ' Các giá trị của vectơ sau khi loại bỏ: ' <<endl;

display_vector(trái cây);

trở lại 0;

}

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi thực hiện đoạn mã trên.



Ví dụ-2: Loại bỏ nhiều phần tử

Tạo tệp C ++ với mã sau để xóa nhiều phần tử khỏi vectơ bằng cách sử dụng hàm xóa (). Một vectơ có giá trị số nguyên đã được sử dụng trong mã. Hai trình vòng lặp đã được sử dụng ở đây để thiết lập phạm vi các phần tử bị xóa khỏi vectơ. Hàm xóa () đã được sử dụng với hai tham số để xóa nhiều phần tử khỏi vectơ.

// Bao gồm các thư viện cần thiết

#bao gồm

#bao gồm

sử dụng không gian têngiờ;

// Hiển thị vectơ

vô hiệudisplay_vector(vectơ<NS>nums)

{

// In các giá trị của vectơ bằng vòng lặp

(tự độnganh ta=số lượng.bắt đầu();anh ta!=số lượng.kết thúc() ;anh ta++)

Giá cả << *anh ta<< '';

// Thêm dòng mới

Giá cả << ' ';

}

NSchủ chốt() {

// Khai báo một vector dữ liệu số nguyên

vectơ<NS>intArray{ 678,435,960,231,800,387,634,267,409,294};

// In các giá trị hiện có của vectơ

Giá cả << 'Các giá trị của vectơ trước khi loại bỏ:' <<endl;

display_vector(intArray);

// Khai báo hai trình vòng lặp để xóa phạm vi phần tử khỏi vectơ

vectơ<NS> :: người lặp lạistartEle, endEle;

// Đặt trình vòng lặp ở vị trí đầu tiên

giật mình=intArray.bắt đầu();

// Tăng trình lặp bắt đầu lên 2

tiến bộ(bắt đầu,2);

// Đặt trình vòng lặp đến vị trí cuối cùng

endEle=intArray.kết thúc();

// Giảm trình lặp kết thúc đi 3

tiến bộ(endEle,-3);

// Xóa phạm vi phần tử

intArray.tẩy xóa(startEle, endEle);

// In các giá trị hiện có của vectơ sau khi loại bỏ

Giá cả << ' Các giá trị của vectơ sau khi loại bỏ: ' <<endl;

display_vector(intArray);

trở lại 0;

}

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi thực hiện đoạn mã trên. Theo phạm vi của các trình vòng lặp, các phần tử từ vị trí thứ 3 đến vị trí thứ 7 của vectơ đã bị loại bỏ.

Ví dụ-3: Loại bỏ các phần tử cụ thể

Tạo tệp C ++ với mã sau để xóa các phần tử cụ thể của vectơ bằng cách sử dụng hàm xóa (). Một vectơ gồm 7 phần tử nguyên đã được khai báo trong mã. Tiếp theo, vòng lặp ‘for’ đã được sử dụng để lặp lại các phần tử vectơ và loại bỏ các phần tử đó khỏi vectơ không chia hết cho 5.

// Bao gồm các thư viện cần thiết

#bao gồm

#bao gồm

sử dụng không gian têngiờ;

NSchủ chốt()

{

// Khai báo một vector dữ liệu số nguyên

vectơ<NS>con số= { 78,Bốn năm,67,25,98,75,52 };

Giá cả << 'Các giá trị của vectơ trước khi loại bỏ: ';

(NS hăng sô &tôi:con số) {

Giá cả <<tôi<< '';

}

Giá cả <<endl;

// Xóa các số khỏi vectơ không chia hết cho 5

(tự độnganh ta=những con số.bắt đầu();anh ta!=những con số.kết thúc();anh ta++)

{

// Kiểm tra số có chia hết cho 5 hay không

nếu như (*anh ta% 5 != 0)

{

// Xóa phần tử dựa trên trình lặp

những con số.tẩy xóa(anh ta-);

}

}

Giá cả << 'Các giá trị của vectơ sau khi loại bỏ: ';

(NS hăng sô &tôi:con số) {

Giá cả <<tôi<< '';


}


Giá cả <<endl;


trở lại 0;

}

Đầu ra:

Kết quả sau sẽ xuất hiện sau khi thực hiện đoạn mã trên. Kết quả cho thấy vectơ chỉ chứa các phần tử chia hết cho 5 và các phần tử khác đã bị loại bỏ.

Phần kết luận:

Các cách sử dụng khác nhau của hàm xóa () đã được trình bày trong hướng dẫn này để xóa các phần tử vectơ. C ++ có nhiều hàm khác để xóa phần tử khỏi vectơ và những hàm đó có thể xóa phần tử đơn lẻ tại một thời điểm. Nhưng cả hai phần tử đơn và nhiều phần tử từ bất kỳ vị trí nào của vectơ đều có thể bị xóa bằng cách sử dụng hàm xóa vectơ ().