السلام عليكم ...
عندما تعلمت Java, كنت أعاني مع الـ Debugger. فأنا كنت أستخدم JCreator :lol:
و طالما مللت من طباعة مكونات المصفوفات بهذا الشكل:
int[] arr = {1, 2, 3, 4, 5};
System.out.print("[ ");
for(int i = 0; i < arr.length; i++)
{
System.out.print(arr + " ");
}
System.out.println("]");بالطبع ظهر أني لا أعرف مكتبة Java جيداً! و هناك toString حتى للمصفوفات.
int[] arr = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(arr));جميل جداً و مختصر, إضافة إلى ذلك, فإن جميع الـ Data Structure في مكتبة الـ Java توفر toString لعملية طباعة العناصر. تستخدم في الـ Debugging في الـ Logging أو حتى لأي استخدام آخر.
مادخلنا بـ Java إذاً!
حسناً ++C ليس فيها toString لطباعة العناصر في أي Container فيها, لذلك أردت أن أحاكي طريقة Java و لكن على طريقة ++C! أكيد لم تفهمني حتى الآن, هذا ما أردته بكل بساطة!
std::vector<int> iVec; ..... std::cout << "vector = " << iVec << std::endl;
يمكنك مع الأداة التي قمت بكتابتها, بطباعة أي Container في STL! و هذا عينة الاختبار التي كتبتها :)
ستجد الكود الذي في الأعلى, مع كود أداة الطباعة نفسها في الملف التالي, مع مشروع VS2008.
و هذا هو ناتج الكود:
ملاحظة : الكود الذي في الأعلى كتبته لاختبار الأداة, و هو يعتمد على boost::assign, بينما الأداة نفسها لا تعتمد على أي كود خارج STL. لذلك يمكنك استخدام الأداة مباشرة دون وجود Boost, و لكن لكي يعمل ملف الاختبار لابد من وجود Boost :)
تحياتي ...



