Pertanyaan C setara dengan C ++ STL [duplikat]


Kemungkinan Duplikat:
Perpustakaan struktur data standar di C? 

Apakah C memiliki implementasi struktur data yang serupa dengan C ++ STL? Khusus wadah asosiatif, peta hash atau struktur lain dengan pengambilan waktu sekitar konstan?

Terima kasih!


12
2018-06-12 20:22


asal


Jawaban:


C tidak bisa memiliki "STL yang sama persis" karena C tidak memiliki templat atau kelas.

Anda mungkin tertarik dengan pustaka "Koleksi glib":


21
2018-06-12 20:23



fasih tidak termasuk GHashTables yang pada dasarnya merupakan asosiasi antara kunci dan nilai - apa HashMap dalam C ++.

Perbedaan penting adalah Anda harus menggunakannya void* untuk menyimpan data arbitrer karena C tidak mendukung templat atau generik. Kelemahannya adalah kompilator tidak dapat memeriksa validitas kode Anda dan Anda harus memastikan kebenarannya sendiri.


5
2018-06-12 20:25



Anda dapat mengimplementasikan sendiri di C sebenarnya. Buatlah struct, berikan pointer ke induknya dan terapkan fungsi yang mengembalikan pointer ke instance dari struct Anda dan Anda memiliki kelas Anda di C. Anda dapat pergi sejauh yang Anda inginkan sebenarnya jika Anda punya waktu dan Anda tahu Bagaimana cara melakukannya.


2
2017-10-05 20:03



C tidak akan pernah memiliki hal seperti itu, karena tidak memiliki fitur yang diperlukan - terutama template.


-1
2018-06-12 20:27