کتابخانه Utility در C++ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

کتابخانه Utility در C++

0 امتیاز

سلام خدمت دوستان c++‌کار.

همانطور که از عنوان سوال مشخصه می خواستم ببینم شما تو c++ بجز کتابخانه boost از چه کتابخانه جانبی برای کارهای دم دستی استفاده می کنید ظاهر هر شرکتی که فریم ورکی با c++ نوشته کتابخانه خودش را پیاده سازی کرده می خواستم تو این پست شروع کنیم چند تا از این کتابخانه ها را معرفی کنیم و ذکر کنیم هر کدوم به درد چه کار دم دستی میخوره این نکته را هم ذکر کنم منظور کتابخانه هایی مثل OpenGL یا cuda یا OpenCV نیست بلکه کتابخانه مثلا کار با رشته کار با vector کار با فایل و thread و از این دست منظورمه.

سوال شده خرداد 21, 1399  بوسیله ی farshid (امتیاز 137)   13 27 34

1 پاسخ

0 امتیاز

سلام؛ اوّل اینکه اگر می‌خواید به یک دسته‌بندی عالی برای ابزارهای یک زبان برنامه‌نویسی دست پیدا کنید می‌تونید مخازن Awesome رو توی Github جست‌جو کنید. مثلاً برای سی‌پلاس‌پلاس :

https://github.com/fffaraz/awesome-cpp

و یا برای سی :

https://github.com/kozross/awesome-c

و اینکه هر شرکتی هم معمولاً بر اساس نیاز‌هایی که داره، یک کتابخانهٔ کمکی هم برای خودش داره. بعضی از شرکت‌ها هم این کتابخانه‌ها رو به‌صورت متن‌باز ارائه کردند، مثلاً :

https://github.com/Aseman-Land/QtAseman

و کتابخانه‌ها، ابزارها و فریمورک‌هایی که من ازشون استفاده کردم و خوب بودند:

 

GUI

    - فریمورک عمومی Qt

اگر نیاز به یک GUI کاملاً Cross-platform دارید می‌تونید از این کتابخانه استفاده کنید، البته گفتم «عمومی» به خاطر اینکه Qt کلاس‌های بسیار زیادی برای تصریح بخشیدن به برنامه‌نویسی Cross-platform تعبیه کرده که می‌تونید تقریباً بیشتر کارهای یک رابط گرافیکی رو با استفاده از ابزارهای این فریمورک بنویسید.

         - برای رسم Plot‌ پیشنهاد می‌کنم که از QCustomPlot استفاده کنید.

         - برای Multi-media هم پیشنهاد می‌کنم که از QtAV استفاده کنید.

         - برای Deploy کردن برنامه‌ها توی سیستم‌عامل‌های لینوکسی هم پیشنهاد می‌کنم که از این ابزار استفاده کنید :

https://github.com/ShahriarSS/QLD

    - کتابخانهٔ رابط‌کاربری Nuclear

امّا خب، همیشه نیاز به یک ابزار خیلی خفن نیست. بعضی مواقع شما نیاز به یک رابط‌گرافیکی خیلی ساده و سبک و بدون وابستگی هستید که می‌تونید از این کتابخانه استفاده کنید :

https://github.com/vurtun/nuklear

 

Comperssing and crypto

    - کتابخانهٔ فشرده‌سازی Zlib

برای فشرده‌سازی، هم پیشنهاد می‌کنم که از کتابخانهٔ Zlib استفاده کنید چرا که به اندازهٔ کافی سبک و سریع هست.

    - کتابخانهٔ رمزنگاری LibSodium

برای رمزنگاری هم اگر نیاز به یک کتابخانهٔ قابل اعتماد و سریع دارید پیشنهاد می‌کنم که از LibSodiom استفاده بکنید که برای زبان‌های زیادی Binding داره.

 

Calendars

    - کتابخانهٔ تقویم شمسی، میلادی و ...  

اگر نیاز به یک کتابخانهٔ محاسبهٔ تقویم دارید، پیشنهاد می‌کنم که از این کتابخانه استفاده بکنید. به خاطر سرعت و دقّت محاسبات. اگر از نسخهٔ Qt 5.15 استفاده می‌کنید می‌تونید با کامپایل کردن Qt این تقویم‌ها رو به اون اضافه کنید که به‌صورت پیش‌فرض برای کامپایل در تنظیمات Qt فعال نیستند.

 https://github.com/soroush/libcalendars

 

Database and document

     - کتابخانهٔ Nlohmann json

اگر نیاز به استفاده از JSON در زبان سی‌پلاس‌پلاس رو دارید، از این کتابخانهٔ حتماً استفاده کنید.

    - دیتابیس NoSQL و سبک و امبدد UnQLite

خب دیگه عنوانش همه چیز رو توضیح داد، پیشنهاد می‌کنم که اگر در برنامه‌اتون نیاز به یک دیتابیس خیلی‌خیلی کوچیک پیدا کردید UnQLite رو از دست ندید :

https://unqlite.org/

          - اگر از زبان سی‌پلاس‌پلاس استفاده می‌کنید پیشنهاد می‌کنم که حتماً از این Wrapper استفاده کنید:

https://github.com/Mikhalevich/UnqliteWrapper

 

Data structuer

    - پیاده‌سازی STL std::vector در سی

شده بعضی وقت‌ها تنها کامپایل سی داشته باشید و نیاز به انجام یه‌سری عملیات پیدا بکنید که اگه دقیقاً std::vector خود STL‌ رو داشتید کارتون شدیداً راحت می‌شد ؟ خب بازم پیشنهاد می‌کنم که از این پیاده‌سازی استفاده بکنید:

https://github.com/eteran/c-vector

 

-------------------------------------------------------------

خب دیگه چیزی به ذهنم نمی‌رسه.

پاسخ داده شده خرداد 21, 1399 بوسیله ی mg_ramezani (امتیاز 727)   1 1 12
...