المكتبة القياسية لـ C++
1117 صفحات
Arabic
PDF
4.5

المكتبة القياسية لـ C++

المكتبة القياسية لـ C++

المؤلف:

السنة:

ملخص:

مقدمة

كتاب «The C++ Standard Library: A Tutorial and Reference» (في الترجمة الروسية — «المكتبة القياسية لـ C++») من تأليف نيكولاي جوسيوتيس (Nicolai Josuttis) — ليس مجرد دليل مرجعي عادي، بل هو عمل أساسي ظل لأكثر من عقد من الزمان كتابًا مرجعيًا لآلاف مطوري C++ حول العالم. الطبعة الثانية، التي صدرت في عام 2012، لا تغطي فقط STL (مكتبة القوالب القياسية) الكلاسيكية، بل تشمل أيضًا جميع الابتكارات التي أدخلها معيار C++11 والتي غيرت اللغة بشكل جذري. حجم الكتاب هو 1117 صفحة من النص التقني الكثيف، مما يدل على عمق معالجة المادة.

بالنسبة للموقع التعليمي pythonlib.ru، يمثل هذا الكتاب اهتمامًا خاصًا: على الرغم من أن الموقع مخصص لـ Python، إلا أن العديد من المطورين يلجأون إلى C++ للمهام التي تتطلب أقصى أداء (محركات الألعاب، الخوادم عالية التحميل، الأنظمة المدمجة). فهم المكتبة القياسية لـ C++ هو المفتاح لاستخدام اللغة بفعالية، وكتاب جوسيوتيس يمنح هذا الفهم على أعلى مستوى.

عن ماذا يتحدث هذا الكتاب؟

الكتاب مبني كدليل شامل ومرجع في آن واحد. يغطي جميع المكونات الأساسية للمكتبة القياسية لـ C++:

  • الحاويات: vector, list, deque, set, map, unordered_set, unordered_map وغيرها. يتم فحص بنيتها الداخلية، تعقيد العمليات، والتوصيات لاختيارها بالتفصيل.
  • المكررات: جميع فئات المكررات (الإدخال، الإخراج، المباشرة، ثنائية الاتجاه، الوصول العشوائي)، بالإضافة إلى محولات المكررات (reverse_iterator, inserter).
  • الخوارزميات: أكثر من 100 خوارزمية STL — من البسيطة مثل find و sort إلى المعقدة مثل partial_sort, nth_element, accumulate وتعبيرات لامدا التي ظهرت في C++11.
  • الكائنات الوظيفية وتعبيرات لامدا: شرح مفصل لكيفية عمل الدوال الكائنية (functors)، الروابط (bind) وتعبيرات لامدا، بالإضافة إلى تطبيقاتها في الخوارزميات.
  • المؤشرات الذكية: unique_ptr, shared_ptr, weak_ptr — دلالاتها، أداؤها، والأخطاء النمطية في استخدامها.
  • تعدد الخيوط والتزامن: thread, mutex, lock_guard, future, promise, async — كل ما هو مطلوب لكتابة كود متعدد الخيوط صحيح.
  • السلاسل النصية والتوطين: العمل مع std::string, std::wstring, الترميزات، الإعدادات المحلية (locales) و facets.
  • الإدخال والإخراج: iostreams، تدفقات الملفات، التنسيق، المعالجات (manipulators).
  • المكتبات العددية: random, complex, valarray, الخوارزميات العددية.

يحتوي كل فصل على شرح نظري بالإضافة إلى العديد من الأمثلة العملية للكود التي يمكن تكييفها فورًا مع مهامك الخاصة.

لمن هذا الكتاب؟

الكتاب موجه للمبرمجين من المستوى المتوسط والمتقدم الذين هم على دراية بالفعل بأساسيات C++ (الصياغة، الفئات، الوراثة) ويريدون تعميق معرفتهم بالمكتبة القياسية. بالنسبة للمبتدئين الذين بدأوا للتو في تعلم C++، قد يبدو الكتاب صعبًا — من الأفضل أولاً إتقان دورة أساسية، ثم العودة إليه كمرجع.

سيكون الكتاب مفيدًا بشكل خاص لـ:

  • المطورين الذين ينتقلون من C إلى C++ أو من لغات أخرى (Java, C#) — لفهم فلسفة STL وأساليب C++.
  • المتخصصين في الأنظمة عالية التحميل حيث يكون الأداء وإدارة الذاكرة الفعالة أمرًا مهمًا.
  • المدرسين والطلاب الذين يدرسون C++ على مستوى جاد.
  • أولئك الذين يريدون كتابة كود C++11/14 حديث، متجنبين الممارسات القديمة.

ماذا سيتعلم القارئ؟

بعد قراءة الكتاب، سيتمكن القارئ من: