Zobowiązałem się do nauki C teraz, jestem dobry z Python/PHP/Bash, ale zdecydowałem, że jestem ograniczony przez brak płynności w C. Jednak nie wyobrażam sobie pracy w języku bez list i skrótów, może Po prostu przeskakuję z pistoletu, ale z pewnością istnieją "standardowe" biblioteki kolekcji. Nie widzę żadnych w standardowej wersji GNU, żadnych sugestii?C Standardowe kolekcje językowe Gdzie są?
Odpowiedz
Nie ma "standardowego" zestawu klas kolekcji dla C. Wiele osób po prostu w razie potrzeby przetasuj własne.
Ale oczywiście niektóre biblioteki wypełniają tę lukę. Na przykład glib oferuje powiązane listy, hashtables i różne rodzaje drzew.
tak, naprawdę to o to pytałem. Zobaczyłem, że nie ma "standardu", ale wiem, że istnieje zestaw narzędzi, z którego korzystają głównie ludzie. To prawdopodobnie to. :) Dzięki – flaxeater
C ma niższy poziom niż jesteś przyzwyczajony. Nie ma żadnych standardowych kolekcji w C poza tablicą.
Ya, OP będzie zaskoczony, nie ma przeciążenia funkcji i nie można zadeklarować zmiennych w środku funkcji – Pyrolistical
@Pyrolistical C99 pozwala na deklaracje zmiennych w środku funkcji – amrox
Nie było jasne i czuję Źle o tym, pomyślałem, że umieszczenie cytatów na temat "standardu" jasno pokazało, że prosiłem o standard wspólnotowy. – flaxeater
Tam naprawdę nie są standardowe kolekcje w C. Jest to język bardzo niskim poziomie (w porównaniu do C++ i bardziej „nowoczesne” języki)
C++ dodaje je poprzez Standard Template Library. Większość "zbiorów", takich jak hashowanie i listy, bazuje na obiektowych lub ogólnych technikach programowania niedostępnych (poza konwencją) w C.
Może powinieneś spróbować spojrzeć na glib. Chociaż nie jest standardem w tym samym sensie, co STL dla C++, jest sprawdzoną biblioteką i jest używany w wielu aplikacjach.
nie są „standardowe” (jak w części normy ISO C) biblioteki pojemnik, przynajmniej od C99. Widziałem kilka prób stron trzecich; wszyscy mieli pewien stopień ubytku lub inny.
C ma bardzo prymitywny i skromny zestaw narzędzi; Porównywałem programowanie w C do budowania domu tylko z piłą ręczną i młotem do pazurów.
Nie ma standardu, ale istnieje doskonała alternatywa, która jest znacznie łatwiejsza niż niż glib: Dave Hanson's C Interfaces and Implementations. Zawiera kilka efektywnych kolekcji pobrań i wiele innych przydatnych modułów. Oprogramowanie jest bezpłatne, a książka jest warta zakupu.
W zależności od systemu możesz znaleźć to, czego szukasz w wersji sys/queue.h, która obejmuje "implementacje pojedynczo połączonych list, podwójnie powiązanych list, prostych kolejek i kolejek".
- 1. Standardowe kolekcje SDK iOS
- 2. Czy standardowe kontenery C++ 11 są "ostateczne"?
- 3. tłumaczenie językowe w php
- 4. Co to są generyczne kolekcje w języku C#?
- 5. Standardowe delegatów w C#
- 6. Jakie są standardowe wyjątki Scala?
- 7. Gdzie instrukcje SSE przewyższają standardowe instrukcje?
- 8. Standardowe komendy WPF - gdzie jest wyjście?
- 9. Gdzie jest standardowe wyjście dla aplikacji Mac?
- 10. Czy standardowe pliki tekstowe są zakończone NULL?
- 11. Gdzie wartości r przechowywane są w C++?
- 12. Paged kolekcje w Backbone.js
- 13. Gdzie są biblioteki Erlang?
- 14. Chińskie kody językowe
- 15. WPFToolkit.Extended - gdzie są narzędzia?
- 16. Gdzie są przechowywane makra?
- 17. Jakie są standardowe formaty plików szyfrowania?
- 18. Czy są standardowe skróty na Androida?
- 19. Co to są standardowe czcionki Unicode?
- 20. Jakie bardzo duże funkcjonalne projekty językowe są swobodnie dostępne?
- 21. Gdzie są nowe metody?
- 22. Czy kolekcje C# zawsze wymuszają zamówienie?
- 23. Excel VBA trudności językowe
- 24. Jak utworzyć powiązanie językowe?
- 25. Laravel Vue Tłumaczenie językowe
- 26. C++ FILE wskaźnik na standardowe wyjście?
- 27. Gdzie przechowywane są dane const?
- 28. Gdzie instalowane są klejnoty?
- 29. Gdzie są adnotacje JDBC4?
- 30. Unicode językowe w edytorze VBA
Jeśli nie masz innego powodu niż "bycie ograniczonym", sugeruję rozpoczęcie nauki C++. C++ ma wektory, listy, prawie wszystko, czego potrzebujesz, oprócz hashtables, które zostaną dodane w C++ 0x i są już dostępne w nowoczesnych kompilatorach. – Thomas
Naprawdę czuję potrzebę lepszego poznania C jak największej ilości infrastruktury, którą ja konsumuję, jako użytkownika języka VHL, a nie w C++, bash/PHP/Python. – flaxeater