2012-06-12 51 views
10

thể trùng lặp:
Standard data structure library in C?C tương đương với ++ STL C

Liệu C có bất kỳ triển khai cấu trúc dữ liệu tương tự như STL C++? Các thùng chứa liên kết cụ thể, bản đồ băm hoặc bất kỳ cấu trúc nào khác với khoảng thời gian thu hồi liên tục không đổi?

Cảm ơn!

+2

Rất nhiều câu hỏi tương tự: http://stackoverflow.com/search?q=[c]+data+structure+library –

Trả lời

5

glib không bao gồm GHashTable s đó là cơ bản hiệp hội giữa các phím và giá trị - những gì HashMap là trong C + +.

Sự khác biệt quan trọng là bạn phải sử dụng void* để lưu trữ dữ liệu tùy ý vì C không hỗ trợ mẫu hoặc generics. Nhược điểm là trình biên dịch không thể kiểm tra tính hợp lệ của mã của bạn và bạn phải đảm bảo tính đúng đắn của chính mình.

-1

C không bao giờ có bất kỳ thứ gì như thế, bởi vì nó không có bất kỳ tính năng bắt buộc nào - đặc biệt là các mẫu.

2

Bạn có thể tự triển khai C của riêng mình trong C. Tạo một cấu trúc, cung cấp cho nó một con trỏ đến cha mẹ của nó và thực hiện một hàm trả về một con trỏ tới một thể hiện của cấu trúc của bạn và bạn có các lớp của bạn trong C. Bạn có thể đi xa như bạn muốn thực sự nếu bạn có thời gian và bạn biết làm thế nào để làm nó.

Các vấn đề liên quan