Xóa khỏi bộ C++
Show Nếu phần tử được chuyển đến ví dụ 1. Xóa một phần tử khỏi tập hợp
đầu ra Updated language set: {'English', 'French'} ví dụ 2. Xóa phần tử không tồn tại
đầ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ápTham 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ạpxó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ặpCá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ệuContainer đượ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ụ 1Hã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ụ 2Hã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ụ 3Hã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<char> s = { 'a', 'b', 'c', 'd' }; int key = 'd';
s. xóa(phím);
cho (char const &c: s) { tiêu chuẩn. cout << c << ' '; }
return 0; } Tải xuống Chạy mã Đầu ra. 2. Xóa tất cả các phần tử thỏa mãn một vị từChúng ta thậm chí có thể loại bỏ các phần tử khỏi một tập hợp thỏa mãn một vị từ một cách có điều kiện. Ý tưởng là sử dụng các trình vòng lặp để lặp lại tập hợp và gọi hàm Updated language set: {'English', 'French'}1 nếu phần tử hiện tại khớp với điều kiện. Lưu ý rằng việc gọi hàm Updated language set: {'English', 'French'}2 trong khi lặp đòi hỏi sự chú ý đặc biệt vì nó làm mất hiệu lực của trình lặp. Chúng ta có thể xử lý việc này theo nhiều cách |