Hành vi của std :: sort khi được sử dụng với ints là bằng nhau là nó sẽ giữ chúng theo thứ tự như vậy hoặc chỉ làm một số công cụ không thể đoán trước?std :: hành vi sắp xếp với ints bằng
Trả lời
std::sort
không giữ nguyên thứ tự của các phần tử tương đương, std::stable_sort
. Tuy nhiên, trong trường hợp int
s bạn sẽ không nhận thấy sự khác biệt, trừ khi bạn sử dụng một số đặt hàng không tầm thường như trong ví dụ sau:
struct half_less
{
bool operator()(int a, int b) const { return (a/2) < (b/2); }
};
std::sort(begin, end, half_less());
@vitaut là đúng. Tôi chỉ muốn thêm rằng bạn sẽ không nhận thấy nếu thứ tự của số nguyên bằng nhau được thay đổi. Điều này chỉ quan trọng nếu bạn sắp xếp các giá trị xảy ra để có một thuộc tính indentifying. Ví dụ nếu bạn lưu trữ con trỏ đến số nguyên và sắp xếp theo giá trị số nguyên.
+1: đó là những gì tôi nghĩ khi đọc câu hỏi :) –
Phải, hoặc nếu một số thứ tự không tầm thường được cung cấp bởi functor so sánh được sử dụng. – vitaut
@vitaut: "Thứ tự không tầm thường" nào bạn có thể sử dụng cho ints có thể phát hiện sự không ổn định của sắp xếp? –
- 1. std :: chức năng và std :: hành vi
- 2. Thay đổi hành vi sắp xếp đối tượng
- 3. Hành vi có thể sắp xếp bất ngờ jQuery
- 4. hành vi của std :: async với std :: launch :: async policy
- 5. Thay đổi hành vi sắp xếp cho jquery sắp xếp được
- 6. std :: vector và std :: hành vi phút
- 7. Sắp xếp các thực thể với hành vi có thể sắp xếp trong Doctrine 2 (Symfony 2)
- 8. Hành vi lạ với vector :: xóa và std :: remove_if với phạm vi kết thúc khác với vector.end()
- 9. sắp xếp std :: danh sách sử dụng std :: sort
- 10. std :: string s() hành vi lạ
- 11. Sắp xếp một std :: vector <std :: pair <std :: string, bool >> bởi chuỗi?
- 12. Sắp xếp bằng MongoEngine?
- 13. Sắp xếp mảng theo thứ tự tăng dần dựa trên ints và không dây
- 14. Hành vi của GCC với tiêu chuẩn :: async (std :: launch :: async) so với hành vi của Clang
- 15. Sắp xếp tệp bằng DirectoryIterator
- 16. Cách sắp xếp danh sách bằng số?
- 17. không gian tên "std" không có thành viên "sắp xếp"
- 18. std :: sắp xếp bản đồ theo dữ liệu?
- 19. Sắp xếp nhiều khóa với Unix sắp xếp
- 20. Powershell Sắp xếp Sắp xếp tùy chỉnh với biểu
- 21. Cách tạo giao diện có thể sắp xếp với 'các hành vi như lồng nhau' trong RubyOnRails
- 22. Hành vi đúng cho std :: vector <T> :: value_type
- 23. Tại sao thứ tự sắp xếp varchar của Oracle không phù hợp với hành vi của so sánh varchar?
- 24. phân loại với nhiều phím bằng lệnh sắp xếp Linux
- 25. Hành vi cụ thể của std :: string on studio visual?
- 26. sắp xếp trong std :: bản đồ, nơi quan trọng là một std :: string
- 27. DataContracts với hành vi
- 28. jQuery treeview với sắp xếp
- 29. Nên std :: sắp xếp công việc với hàm lambda trong C++ 0x/C++ 11?
- 30. chuỗi ints để liệt kê ints với một TryParse
Không phải (a/2) <(b/2) giống như Zebrafish
@Zebrafish no, hãy xem xét ví dụ a = 2 và b = 3 – vitaut
ah có. Cảm ơn. – Zebrafish