vector<int>
có cả hai vector<int>::size_type
và vector<int>::difference_type
. Có vẻ như không cần thiết cho cả hai tồn tại kể từ khi size_type
được đảm bảo có thể giữ một giá trị lớn như số lượng tối đa các phần tử vector<int>
có thể chứa trên một hệ thống nhất định và trong mọi trường hợp sử dụng hợp lệ, difference_type
hoặc bằng số lượng phần tử tối đa tức là khoảng cách giữa hai phần tử trong vùng chứa tuần tự sẽ không bao giờ lớn hơn số lượng tối đa các phần tử mà vùng chứa tuần tự có thể chứa. Ai đó có thể cung cấp một ví dụ mà có một sự khác biệt hữu ích giữa hai?Tại sao các vùng chứa tuần tự có cả size_type và differ_type?
14
A
Trả lời
27
container::difference_type
tồn tại vì đối với một số vùng chứa trình tự, bạn có thể trừ các trình vòng lặp. Phép trừ đó có thể dẫn đến một số âm. Bạn không thể sử dụng container::size_type
cho kết quả đó vì nó chưa được ký, do đó bạn sẽ không bao giờ có giá trị âm. Vì vậy, chúng tôi có container::difference_type
là số nguyên đã ký là số difference_type
của trình lặp của vùng chứa.
Các vấn đề liên quan
- 1. Tại sao vùng chứa docker nhắc "Quyền bị từ chối"?
- 2. Tại sao các vùng chứa liên kết không có thứ tự thực hiện toán tử nhỏ hơn?
- 3. Tất cả trạng thái vùng chứa Docker?
- 4. Tại sao mọi người tạo virtualenv trong vùng chứa docker?
- 5. Vùng chứa Docker và các cụm Node.js
- 6. Tại sao một lớp bên trong tuần tự không thể tuần tự hóa được?
- 7. Fragment.onCreateView có vùng chứa rỗng
- 8. Tại sao các vùng chứa C++ không cho phép các loại không đầy đủ?
- 9. Tại sao không có vector (size_type n, const Allocator & alloc) trong C++ 11?
- 10. Tuần tự hóa Python - Tại sao chọn dưa?
- 11. Tại sao System.TimeSpan không thể tuần tự hóa XML?
- 12. Việc chuyển vùng chứa STL có tạo bản sao không?
- 13. differ_type không được tìm thấy
- 14. Tại sao mmap() nhanh hơn IO tuần tự?
- 15. Tại sao Hạt Java phải được tuần tự hóa?
- 16. PostgreSQL và tuần tự dữ liệu
- 17. So sánh các vùng chứa với GoogleTest
- 18. Tuần tự hóa và câu lệnh Yield
- 19. Các thành phần Swing và tuần tự hóa
- 20. Kéo div lồng nhau lên chiều cao của div vùng chứa khi vùng chứa có chiều cao: tự động?
- 21. Tuần tự hóa tại Scala/Akka
- 22. lệnh duy nhất để dừng và xóa vùng chứa docker
- 23. Các loại phần tử vùng chứa
- 24. Vùng chứa Servlet và đường dẫn lớp
- 25. Tạo vùng chứa các phần tử có lề giữa các phần tử chứ không phải vùng chứa?
- 26. Các tệp lớn trong vùng chứa Docker
- 27. Tại sao không "hiển thị: chặn" & "chiều rộng: tự động" kéo dài một nút để lấp đầy vùng chứa?
- 28. Nhận tất cả các ngày trong tuần hiện tại?
- 29. Tuần tự hóa có lưu các trường siêu lớp không?
- 30. Có thể tạo vùng chứa docker chứa một hoặc nhiều vùng chứa không?
Có hai loại khác nhau cho 'kích thước' và' chênh lệch' được một số nhầm lẫn trong thiết kế ban đầu của STL. Vì vậy, không đưa vào mặc dù nhiều về nó. Xem ví dụ. https://www.youtube.com/watch?v=wvtFGa6XJDU – alfC