السلام عليكم ,
اليوم قرأت كثيرا عن هذا الموضوع وقلت اعرضه هنا .. للدعاية له لانه فعلا مفيد .
===========
دائما ما تمر علي STL .. لكن لا اهتم بها لانها عقيمة ,,, ومعقدة حسبما كنت اتصور ,
والسبب في ذلك انه نادرا ما قرأت عنها في منتدياتنا العربية .
اذا كنت مبرمج فيجوال بيسك ... فستشتاق للبيسك .. اذا رأيت ( فضاعة strings) في لغة السي .
لان اغلب المبتدئين في السي .. لايجيدون كثيرا التعامل مع المؤشرات التي هي القلب النابض للسلاسل النصية .
وبالتالي .. دائما ما يحدث flowover .. لانه وببساطة حجم النص صار اكبر من حجم المصفوفة .
بالتالي يجب ان تكون حريصا جدا على مسألة حجز ذاكرة مناسبة للمصفوفة ..
بمعنى أنك ستستخدم new - delete ...
لنفرض أنك عبقري مؤشرات .. فلتة في المصفوفات . . .
هل هذا يعني العقدة انحلت مع النصوص في السي ...!!
لا اظن .
اريدك تنشئ مصفوفة نصية ديناميكية (مصفوفة مؤشرات).. تحمل نص .
وتنشئ مصفوفة مؤشرات اخرى ايضا .
اريدك تضيف النص الموجود في المصفوفة الاولى على الثانية .
اريدك ان تدمج ماتحتويه المصفوفتين .
اريدك ان تستخدم في ذلك الدوال strcopy واخواتها ..
او ان تنشئ انت بنفسك تلك الدوال .
اريدك ان تعترف وتقول "" الامر متعب " "
هو فعلا متعب . شئنا أم ابينا .
طبعا الحل هو باستخدام STL وهي مكتبة ممتازة تحتوي على عدة اقسام .. كل قسم اروع من الاخر .
مثلا يكفي أن نكتب
string s;
string s1("arab");
string s2("team");
s = s1 + s2;
s += s2;الامر رائع
اكيد ان الاغلبية هنا يعرفون لهذه المكتبة .
لكن السؤال لماذا لا يستخدمها احد ..
والاغلبية لازالوا على strcopy ..
لا اعرف ..
===============
نترك strings
--
ايضا في STL يوجد خدمات اخرى جميلة ,,
مثلا list -Vectors ....
,وايضا الـstack الرائع ... والذي يذكرني "بالمُطَبَّق :D"
خلصت .....
===============

