0 👍
421 lượt xem
bởi
Chào các anh. Thầy bảo em xem template của list được cài đặt như thế nào. Xem xong mới hiểu được tại sao list có thể so sánh được 2 đối tượng bất kỳ. Trong list việc sắp xếp chỉ có toán tử < ? Không có toán tử > ? Em cám ơn!
bởi
Em tìm được cái này: https://gist.github.com/unreadable/fcf83725fb80a6790a43426940644523
Có đúng chưa ạ. Vẫn không thấy operator < đâu?

2 câu trả lời

+1 👍
bởi
1. Bạn có nhầm không? List làm gì có so sánh 2 phần tử?

2. Nếu ý bạn là std::list của c++ standard library thì cái ở trên bạn tìm sai rồi. Tìm trong source code của gcc, llvm/clang hoặc msvc thì bạn sẽ tìm thấy implement của std::list, và cũng không có việc so sánh ở đó đâu.
bởi
Nó lưu đối tượng của class ấy bạn. Lưu thông tin của lớp sách. Sắp xếp theo năm xuất bản.
0 👍
bởi (🏅151)
Theo như a check ở trong file header của std::list C++14, tham khảo đường dẫn đến file này bên dưới →
  • Trên Windows cài Visual Studio 2015: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\list
  • Trên Linux cài gcc 5.4.0/usr/include/c++/5.4.0/profile/list
Tuy là file header nhưng các toán tử so sánh của list được implement inline ở header luôn. Nhìn vào đây có thế thấy std::list có đầy đủ các operator <, >, <=, >=, ==, !=. Tuy nhiên theo a biết thì các toán tử này bị remove ở C++20.

Các toán tử này dùng để compare 2 list với nhau chứ không phải dùng cho việc sort các phần tử trong list. Compare 2 list ở đây sẽ được thực thi theo lexicographically. Nếu chưa beiest lexicographically là gì thì e có thể tham khảo ở link này https://en.cppreference.com/w/cpp/algorithm/lexicographical_compare
bởi
A Tuấn ơi tiện e hỏi luôn là để check source code của các standard lib của C++ của Code Blocks thì a thử tìm hộ em xem nó nằm ở đâu ạ ?? Vì em tìm rồi mà khó tìm phết
bởi (🏅151)
A không dùng Code Blocks nên không rõ lắm.
E thử vào Settings > Compiler xem directory chứa include nó nằm ở đâu rồi vào directory đó tìm xem.
Coding Guru là nơi dành cho cộng đồng lập trình viên Việt Nam hỗ trợ nhau về tất cả các vấn đề liên quan đến công nghệ.

Chúng ta hãy cùng nhau xây dựng một cộng đồng công nghệ Việt Nam mạnh mẽ, thúc đẩy và giúp đỡ nhau cùng phát triển, thăng tiến trong sự nghiệp.

***
Nơi đam mê hội tụ
***

Một số câu hỏi gần đây có thể tương tự hoặc liên quan ↓

0 👍
1 trả lời 80 lượt xem
hỏi bởi LongHoang (🏅0) 10/11/2020
+1 👍
1 trả lời 574 lượt xem
0 👍
2 trả lời 241 lượt xem
hỏi bởi Longhoang 31/3/2020
0 👍
2 trả lời 355 lượt xem
hỏi bởi ẩn danh 23/11/2019
...