السلام عليكم ,,
مضى علي وقت طويل منذ آخر موضوع طرحته, اليوم نعود بحمد الله, مع لمحة جديدة تحتاج إلى إحابة,
ربما كان العيب الكبير في لغة C هو البلبة الناتجة عن التعامل مع النصوص (في الحقيقة مع المؤشرات من النوع char),
و دائماً ما تتهم ++C بنفس الاتهام رغم أن لا أساس له من الصحة, مكتبة STL وفرت الكائن string و الذي يعتبر أعجوبة نظراً لتصميه, لأنه يعتمد على الـ templates في تصميمه,
و لكن لن نتكلم هنا عن مميزاته و عيوبه, لنبدأ في طرح السؤال و فهم المطلوب :
التعامل مع النصوص يحتاج إلى حذر شديد, فهي تحتاج إلى الكثير من الذاكرة في عملية تخزينها, و تستهلك جهد المعالج إذا تم التعامل معها بشكل غير احترافي!
لننظر إلى المثال التالي :
string str; for( int i = 0; i < 10000; i++) str = str + "ID# " + itos(i) + '\n';
أو بالطبع يمكننا كتابة الكود الذي في الأعلى كالتالي :
string str;
for( int i = 0; i < 10000; i++){
str += "ID# ";
str += itos(i);
str += '\n';
}الآن نريد أن نعرف أي الطريقتين أفضل, و لماذا ؟؟؟
ملاحظة الدالة itos هي دالة تقوم بتحويل الـ int إلى string لا أكثر, و هذا هو الكود الخاص بها :
string itos(int i) // convert int to string
{
stringstream s;
s << i;
return s.str();
}الدالة موجودة في صفحة Bjarne Stroustrup على الرابط التالي :
How do I convert an integer to a string
الحقيقة لا تهمنا دالة التحويل على الإطلاق, كل ما يهمنا هو مناقشة أي الطريقتين المذكورتين في الأعلى أسرع و أكثر توفيراً للذاكرة !!!
أنا أنتظر رأيكم و مناقشتكم !
تحياتي ,,,


