المسارات
/
C++
C++
/
المنهج
/
المصفوفات والمتجهات
ال

المصفوفات والمتجهات في C++

3 تمارين

نبذة عن المصفوفات والمتجهات

المصفوفات والمتجهات

توفّر C++ حاويات مختلفة لتخزين عناصر من النوع نفسه بطريقة مرتّبة. توجد std::array للحاويات ذات الحجم الثابت، وstd::vector التي تأتي بقدرات تغيير الحجم ديناميكيًا.

الإنشاء

عندما تُعلن عن مصفوفة أو متجه، فأنت بحاجة إلى تحديد نوع العناصر التي ستضمّها الحاوية. تحتاج المصفوفات أيضًا إلى حجم. ألقِ نظرة على هذه الأمثلة لترى كيفية تهيئة نوعي الحاويات:

#include <array>
#include <string>

// std::array<element_type, size> variable_name {list of elements}
std::array<std::string, 3> indie_rock {"yeah", "yeah", "yeah"};
// indie_rock contains the elements "yeah" three times

عادةً ما تحتاج المتجهات إلى مساحة أكبر، لأنها تخصّص ذاكرة لمزيد من النمو. لست بحاجة إلى تحديد حجم:

#include <vector>

// std::vector<element_type> variable_name {list of elements}
std::vector<int> countdown {3, 2, 1};
// my_vector contains the elements 3, 2 and 1

ملاحظة: لست بحاجة بعد إلى معرفة الآلية الدقيقة التي تكمن وراء مفهوم القالب، فسيكون له مفهومه المستقل في موضع أدنى في شجرة المنهج.

الوصول إلى العناصر

تتشارك المتجهات والمصفوفات الدوال نفسها للوصول إلى عناصرها. يمكنك استخدام دوال العضو front وback للحصول على العنصرين الأول والأخير في الحاوية. توجد أيضًا at والعامل [] للوصول إلى عناصر محدّدة.

countdown[0];
// => 3
countdown.at(2);
// => 1
countdown[1] = 4;
// countdown now contains 3, 4 and 1
indie_rock.back() = "yeahs";
// indie_rock is now "yeah", "yeah", "yeahs"

ملاحظة: إذا اخترت موضعًا خارج نطاق حاويتك، فقد يؤدي [] إلى سلوك غير معرّف. أما دالة at فسترفع استثناءً، وهو ما قد يسهّل عليك الأمور على المدى الطويل.

معدّلات المتجه

بما أن vector ليس ثابت الحجم، فمن الممكن إضافة عناصر أو إزالتها. من الدوال الشائعة لهذا الغرض emplace_back وpop_back.

std::vector<std::string> witches {"Holly", "Alyssa", "Shannen"};
witches.pop_back();
// Shannen is no longer with the witches
witches.emplace_back("Rose");
// Rose has joined the team

السعة

يمكنك التحقق من خلوّ الحاويات باستخدام دالة العضو empty. وإذا أردت معرفة عدد العناصر، يمكنك استخدام size.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة

تعلّم المصفوفات والمتجهات

التدريب مقفل

افتح 4 تمارين إضافية لممارسة المصفوفات والمتجهات