Điều gì đảm bảo C++ thực hiện về thứ tự của các ký tự chữ? Có một thứ tự xác định các ký tự trong bộ ký tự nguồn cơ bản không? (Ví dụ như là 'a' < 'z'
đảm bảo là đúng? Làm thế nào về 'A' < 'z'
?)C++ đảm bảo gì về thứ tự của các ký tự chữ?
Trả lời
Các tiêu chuẩn chỉ cung cấp một đảm bảo cho Trật tự của các chữ số thập phân 0
-9
, từ dự thảo C++ 11 phần chuẩn 2.3
[lex.charset]:
trong cả hai nguồn và thực hiện các bộ ký tự cơ bản, giá trị của mỗi nhân vật sau 0 trong danh sách trên các chữ số thập phân sẽ một lớn hơn giá trị của trước.
và nếu không nói (nhấn mạnh tôi):
Các cơ bản bộ ký tự thực hiện và cơ bản thực hiện rộng bộ ký tự mỗi sẽ chứa tất cả các thành viên của bộ ký tự nguồn cơ bản, cộng với các ký tự điều khiển đại diện cho cảnh báo, backspace, và vận chuyển trở lại, cộng với một ký tự null (tương ứng, null ký tự rộng), có đại diện có tất cả các bit bằng không. Đối với mỗi bộ ký tự thực thi cơ bản , giá trị của các thành viên phải là không âm và khác biệt với nhau.
Lưu ý, EBCDIC có bộ ký tự không liên tiếp.
- 1. foreach% dopar% - đảm bảo về thứ tự kết quả?
- 2. Thứ tự semaphore được đảm bảo?
- 3. Thứ tự của chữ băm Ruby có được đảm bảo không?
- 4. Thứ tự mảng JavaScript có được đảm bảo không?
- 5. Phần tử lược đồ tuần tự có đảm bảo thứ tự các phần tử con không?
- 6. TCP có được đảm bảo đến đúng thứ tự không?
- 7. Thứ tự của các mục được đọc từ một XDocument, bởi LINQ, Đảm bảo?
- 8. Việc liệt kê nhanh trong Objective-C có đảm bảo thứ tự lặp lại không?
- 9. Thứ tự từ trái sang phải của các hoạt động được bảo đảm trong Java?
- 10. std :: transform đảm bảo trật tự
- 11. Thứ tự thực thi các tham số đảm bảo trong Java?
- 12. Sắp xếp các ký tự trong NSString thành thứ tự chữ cái
- 13. Kết quả của truy vấn LINQ luôn được đảm bảo theo đúng thứ tự?
- 14. Cách kiểm tra xem chuỗi có chứa chuỗi thứ hai có các ký tự trong thứ tự không?
- 15. Thứ tự các thuộc tính có bất kỳ đảm bảo nào không?
- 16. Thứ tự của một từ điển Python có được đảm bảo lặp lại không?
- 17. Swift có đảm bảo thứ tự lưu trữ của các trường trong các lớp và cấu trúc không?
- 18. Có đảm bảo về trật tự, trong đó C++ ngăn xếp biến bị phá hủy
- 19. Thứ tự phụ thuộc được đảm bảo khi tiêm IEnumerable <T>
- 20. Thứ tự của mảng kết hợp có được bảo đảm bằng PHP không?
- 21. UNION ALL có đảm bảo thứ tự của tập hợp kết quả
- 22. Sắp xếp các ký tự đặc biệt SQLite theo thứ tự bảng chữ cái
- 23. Thứ tự lặp của HashSet
- 24. Sử dụng các chứng chỉ X509 tự ký để đảm bảo một cụm SF sản xuất
- 25. Loại Type.GetProperties() có đảm bảo một thứ tự nhất định cho kết quả PropertyInfo [] không?
- 26. Đảm bảo về địa chỉ của baseclass trong C + +?
- 27. Chuyển đổi ký tự số để ký tự chữ
- 28. Chuỗi Promise này có được đảm bảo thực thi theo thứ tự này không?
- 29. Ký tự Escape Bash "\ c" là gì?
- 30. Các chuỗi ký tự chuỗi có đảm bảo được đặt cạnh nhau trong bộ nhớ không?
Việc triển khai thực sự xấu xa có thể có ''z' == 'a' + 25' và _still_ có' 'b' <'a''. Tôi tin rằng điều này là khá underspecified, thậm chí chiếm EBCDIC và tin nhắn SMS. – MSalters
Thực tế là không có chương trình bảo đảm nào nữa là đôi khi bạn nên gắn bó hỗ trợ của mình với một số triển khai, có thể là "nhiều nhất". Một ví dụ tốt trong quan điểm của tôi là Qt gắn bó với các triển khai có 'sizeof (int) == 4' ... Tất cả các trình biên dịch mà họ muốn hỗ trợ đảm bảo điều này, nhưng tất nhiên không phải tất cả, nhưng nếu bạn giới hạn bản thân để thực hiện như vậy, nó có thể làm cho cuộc sống dễ dàng hơn nhiều. Tuy nhiên, bạn cần phải cẩn thận và biết việc triển khai bạn đang gắn bó, cũng như xem xét giới hạn như vậy phụ thuộc vào ứng dụng, tất nhiên. – leemes