Tôi cần một trình vòng lặp cho lớp thu thập truy cập ngẫu nhiên tùy chỉnh của mình. Tôi muốn sử dụng trình lặp với std::sort
. Vì tôi là một người mới sử dụng C++ với ngân sách giới hạn thời gian, tôi muốn tránh viết toàn bộ bản thân mình.Tại sao const count_iterator của boost?
Trình vòng lặp của tôi về cơ bản chỉ đơn giản là size_t
. Do đó, tôi nghĩ rằng boost::counting_iterator
có thể là một kết quả phù hợp. Khi tôi đã hoàn thành Incrementable
tôi phải nhận ra rằng counting_iterator
xác định loại tham chiếu của nó là const Incrementable&
.
Mặc dù tôi vẫn còn bị nhầm lẫn bởi rất nhiều C++, tôi tin rằng điều này sẽ ngăn không cho tôi sử dụng trình lặp với std::sort
vì trình lặp const không thể được sử dụng để trao đổi các phần tử thu thập.
Đây là câu hỏi: tại sao boost::counting_iterator
xác định loại tham chiếu của nó là const
và, có lẽ quan trọng hơn, tôi nên sử dụng thay thế nào?
'boost :: counting_iterator' không thể sử dụng để truy cập vùng chứa. Nó được tạo ra để "truy cập" một chuỗi các số tự nhiên '0, 1, 2, ...'. Đó là lý do loại tham chiếu của nó là 'const': bạn không thể hack' 2' để trở thành '3'. –
"Tôi cần một trình vòng lặp cho lớp thu thập truy cập ngẫu nhiên tùy chỉnh của tôi." có lẽ không tương thích với "Tôi là người mới". Tôi có thể hỏi tại sao bạn cần một lớp sưu tập tùy chỉnh? –
"Trình vòng lặp của tôi về cơ bản chỉ là một' size_t' đơn giản "Tôi không hiểu.'size_t' không đáp ứng các yêu cầu của khái niệm iterator – KABoissonneault