cuốn sách gpt4 ai đã làm

Thành ngữ "xóa-xóa" STL: Tại sao không "thay đổi kích thước-xóa"?

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 15:45:27 26 4
mua khóa gpt4 Nike

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() );
}

câu trả lời hay nhất

Theo tôi, có hai lý do:

  1. 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.

  2. 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"].

Về c++ - Thành ngữ "xóa-xóa" STL: Tại sao không "thay đổi kích thước-xóa"?, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/22860119/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress