sách gpt4 ai đã đi

Tại sao for_each lại hoạt động mà không có std::prefix

In lại Tác giả: IT Lao Gao Thời gian cập nhật: 2023-10-28 23:16:43 26 4
mua khóa gpt4 Nike

Tôi nghĩ for_each đã được định nghĩa trong không gian tên chuẩn, nhưng đoạn mã này thực sự biên dịch và chạy với các cờ biên dịch sau. Có ai có thể giải thích cho tôi tại sao không?

  //@tên tệp myprog.cpp 
//g++-4.5 --std=c++0x myprog.cpp

#include
#include

int chính()
{
std::vector v{1,2,3,4,5};
std::cout<<"in số\n";
for_each(v.begin(),v.end(),[](int num) { //không có std::for_each
std::cout<<>
});
trả về 0;
}

1 Câu trả lời

Chuyển đổi bình luận thành câu trả lời, lý do là ADL (Tra cứu phụ thuộc vào đối số). Về cơ bản, điều này có nghĩa là không có cách nào để tìm được một phù hợp cho_mỗi của các trận đấu. Trình biên dịch có một quy tắc tích hợp rằng trong không gian tên hiện tại, nó sẽ tìm kiếm trong các không gian tên khác - tập hợp các không gian tên mà nó sử dụng cho việc này chính là không gian tên của đối số. Khi đã có một tập hợp các không gian tên, nó sẽ tìm kiếm chúng để tìm ra không gian tên thích hợp.cho_mỗi. .

Câu hỏi chưa có lời giải đáp là std::vector<>::iteratorSống trong tiêu chuẩn::Hoặc không. Rõ ràng trong quá trình triển khai của bạn thì đây là trường hợp, đó là lý do tại sao cho_mỗihiện hữu tiêu chuẩn::đã được phát hiện. Có lẽTrong trường hợp này, trình lặp không phải là tiêu chuẩn:: ở giữa. - Để an toàn (như Alan đã bình luận), hãy luôn tạo thói quen sử dụng tiêu chuẩn:: Thói quen chơi các trận đấu xếp hạng.

Điều này cũng ngăn cản những người khác giới thiệu một người khác cho_mỗi tình huống. (để tranh luận) vào không gian tên của bạn - điều này có thể làm hỏng mọi thứ (trong trường hợp tệ nhất - được chấp nhận một cách thầm lặng - nhưng lại hỏng khi chạy).

Về c++ - tại sao for_each lại hoạt động mà không cần std::prefix, 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/6730266/

26 4 0
Bài viết được đề xuất: Bộ phân bổ chuẩn Realloc-in
Bài viết được đề xuất: ActionBar (hỗ trợ) và Fragment (hỗ trợ)
Bài viết được đề xuất: "Thẻ" và "ID" trong bố cục là gì?
Bài viết được đề xuất: Signal so với Signal2
CNTT Lao Gao
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com