Như chúng ta đã biết, từ std::vector
Một cách tốt để loại bỏ hoàn toàn mục mong muốn khỏi xóa-xóa thành ngữ .
Như đã đề cập trong liên kết ở trên (kể từ ngày đăng bài này), trong mã,xóa-xóa Cách sử dụng thành ngữ như sau:
int main()
{
// khởi tạo một vectơ chứa các số từ 0-9.
std::vector v = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// thành ngữ xóa-xóa để loại bỏ hoàn toàn các mục mong muốn khỏi vectơ
v.erase( std::remove( std::begin(v), std::end(v), 5 ), std::end(v) );
}
我想知道 thay đổi kích thước-xóa
Thành ngữ có chức năng và hiệu suất tương đương với xóa-xóa
Thành ngữ. Hoặc có lẽ tôi đang thiếu một cái gì đó hiển nhiên?
dướithay đổi kích thước-xóa
Thành ngữ có tương đương với thành ngữ trên không?xóa-xóa
thành ngữ?
int main()
{
std::vector v = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// Cách tiếp cận "resize-remove" này có tương đương với thành ngữ "xóa-xóa" không?
v.resize( std::remove( std::begin(v), std::end(v), 5 ) - v.begin() );
}
Theo tôi, có hai lý do:
std::xóa
Thuật toán chỉ yêu cầu các vòng lặp chuyển tiếp, nhưng-
op yêu cầu một trình vòng lặp truy cập ngẫu nhiên.
std::xóa
Kết quả có nghĩa là "đầu mới của container". Theo logic, chúng ta nên loại bỏ ["đầu mới của container", "đầu cũ của container"].
Tôi là một lập trình viên xuất sắc, rất giỏi!