remove[]
xóa phần tử đã chỉ định khỏi tập hợp và cập nhật tập hợp. Nó không trả về bất kỳ giá trị nào
Nếu phần tử được chuyển đến remove[]
không tồn tại, ngoại lệ KeyError sẽ bị ném
ví dụ 1. Xóa một phần tử khỏi tập hợp
# language set
language = {'English', 'French', 'German'}
# removing 'German' from language
language.remove['German']
# Updated language set
print['Updated language set:', language]
đầu ra
Updated language set: {'English', 'French'}
ví dụ 2. Xóa phần tử không tồn tại
# animal set
animal = {'cat', 'dog', 'rabbit', 'guinea pig'}
# Deleting 'fish' element
animal.remove['fish']
# Updated animal
print['Updated animal set:', animal]
đầu ra
Traceback [most recent call last]: File "", line 5, in animal.remove['fish'] KeyError: 'fish'
Bạn có thể sử dụng phương thức set discard[] nếu không muốn gặp lỗi này
Phương thức
set.remove[element]1 xóa phần tử đã chỉ định khỏi tập hợp. Tuy nhiên, nếu phần tử không tồn tại, tập hợp vẫn không thay đổi;
Hàm set erase[] trong C++ được sử dụng để xóa một phần tử đơn lẻ được liên kết với khóa đã cho hoặc một dải phần tử [[đầu tiên, cuối cùng]] khỏi vùng chứa đã đặt. Do đó, kích thước sẽ bị giảm theo số lượng phần tử bị xóa
cú pháp
Tham số
Chức vụ. trình vòng lặp trỏ đến một phần tử cần xóa khỏi tập hợp
val. Giá trị cần xóa khỏi tập hợp
Đầu tiên. Bắt đầu phạm vi để xóa
Cuối cùng. Kết thúc phạm vi để xóa
Giá trị trả về
Nó trả về một iterator trỏ đến phần tử tiếp theo của phần tử đã xóa hoặc trả về số phần tử đã xóa
phức tạp
xóa [vị trí]. hằng số khấu hao
xóa [val]. Logarit trong kích thước container
xóa [đầu tiên, cuối cùng]. Tuyến tính trong khoảng cách giữa đầu tiên và cuối cùng
Hiệu lực của trình vòng lặp
Các trình lặp, tham chiếu và con trỏ trỏ đến các phần tử bị loại bỏ bởi hàm không hợp lệ
Tất cả các trình lặp, con trỏ và tham chiếu khác đều giữ nguyên giá trị của chúng
Cuộc đua dữ liệu
Container được sửa đổi
Các yếu tố bị loại bỏ được sửa đổi. Việc lặp lại các phạm vi trong vùng chứa là không an toàn mặc dù việc truy cập đồng thời các phần tử khác là an toàn
An toàn ngoại lệ
Chức năng này không ném ngoại lệ
Nếu một phạm vi hoặc vị trí không hợp lệ được chỉ định, nó sẽ gây ra hành vi không xác định
ví dụ 1
Hãy xem ví dụ đơn giản để xóa phần tử bằng iterator
đầu ra
Before erasing the element: 10 20 30 After erasing the element: 10 20 30
Trong ví dụ trên, phần tử bị xóa bởi iterator it
ví dụ 2
Hãy xem một ví dụ đơn giản để xóa phần tử của tập hợp với giá trị khóa đã cho
đầu ra
Before erasing the element: 10 20 30 40 After erasing the element: 10 20 40
Trong ví dụ trên, hàm erase[value] sử dụng giá trị 30 từ tập hợp
ví dụ 3
Hãy xem một ví dụ đơn giản để xóa phần tử theo phạm vi đã cho
đầu ra
Before erasing the element are: Size is: 3 10 20 30 After erasing the element are: Size is: 0
Trong ví dụ trên, hàm erase[first, last] được sử dụng để xóa phần tử với phạm vi i đã cho. e. bắt đầu kết thúc
Chúng tôi đã tuyển chọn một danh sách các Khóa học C++ Tốt nhất, sẽ dạy cho bạn C++ Hiện đại tiên tiến nhất từ cấp độ cơ bản đến nâng cao. Nó cũng sẽ giới thiệu với bạn về Con trỏ thông minh, Ngữ nghĩa di chuyển, Giá trị giá trị, hàm Lambda, tự động, mẫu Variadic, phạm vi dựa trên vòng lặp, Đa luồng và nhiều tính năng mới nhất khác của C++i. e. từ C++11 đến C++20Việc xóa một phần tử khỏi set container rất đơn giản trong C++. Ý tưởng là chuyển phần tử đã cho vào hàm
Updated language set: {'English', 'French'}0, hàm này sẽ xóa phần tử đó khỏi tập hợp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include
#include
int chính[]
{
tiêu chuẩn. unordered_set s = { 'a', 'b', 'c', 'd' };
int key = 'd';
s. xóa[phím];
cho [char const &c: s] {
tiêu chuẩn. cout