المتجهات في لغة C++ عبارة عن حاوية تعتمد على المصفوفة الديناميكية تُستخدم لتخزين مجموعة من العناصر من نفس النوع. على عكس المصفوفات، يمكن أن تنمو المتجهات أو تتقلص في الحجم ديناميكيًا، مما يجعلها بنية بيانات ملائمة وفعالة لتخزين البيانات ومعالجتها.
يتم تعريف المتجه من خلال تضمين الرأس وإعلان كائن متجه. يتم تحديد نوع المتجه بين قوسين زاوية، متبوعًا باسم المتغير. على سبيل المثال:
#include std::vector myVector;
بمجرد تعريف المتجه، يمكن إضافة عناصر إليه باستخدام طريقة Push_back(). تضيف هذه الطريقة عنصرًا جديدًا إلى نهاية المتجه. على سبيل المثال:
myVector.push_back(1); myVector.push_back(2); myVector.push_back(3);
توفر المتجهات أيضًا إمكانية الوصول إلى العناصر الفردية باستخدام عامل التشغيل []. فهرس العنصر الأول في المتجه هو 0، وفهرس العنصر الأخير هو size()-1. على سبيل المثال:
std::cout << myVector[0] << std::endl; std::cout << myVector[1] << std::endl; std::cout << myVector[2] << std::endl;
بالإضافة إلى إضافة العناصر، توفر المتجهات أيضًا طرقًا لإدراج العناصر وإزالتها وتعديلها. يمكن استخدام طريقة الإدراج () لإدراج عنصر في فهرس محدد في المتجه. يمكن استخدام طريقة المسح () لإزالة عنصر من فهرس محدد في المتجه. يمكن استخدام الطريقة الواضحة () لإزالة جميع العناصر من المتجه.
توفر المتجهات أيضًا عدة طرق مفيدة للتكرار عبر العناصر الموجودة في المتجهات. ترجع طريقة begin() مكررًا يشير إلى العنصر الأول في المتجه، وترجع طريقة end() مكررًا يشير إلى العنصر الأخير في المتجه. يمكن استخدام المُكرِّر للوصول إلى العناصر الموجودة في المتجه واحدًا تلو الآخر، كما هو موضح في المثال التالي:
std::vector::iterator it; for (it = myVector.begin(); it != myVector.end(); it++) { std::cout << *it << std::endl; }
توفر المتجهات أيضًا طريقة size() التي تُرجع عدد العناصر الموجودة في المتجه. يمكن استخدام هذا للتحقق مما إذا كان المتجه فارغًا، كما هو موضح في المثال التالي:
if (myVector.empty()) { std::cout << 'The vector is empty.' << std::endl; } else { std::cout << 'The vector is not empty.' << std::endl; }
في الختام، المتجهات عبارة عن بنية بيانات قوية وفعالة في لغة C++ والتي توفر حاوية ديناميكية قائمة على المصفوفة لتخزين مجموعات العناصر ومعالجتها. توفر المتجهات طرقًا لإضافة العناصر وإزالتها وتعديلها، بالإضافة إلى التكرار عبر العناصر الموجودة في المتجهات. باستخدام المتجهات في C++، يمكنك كتابة تعليمات برمجية أكثر إيجازًا وفعالية للعمل مع مجموعات من البيانات.
إضافة ناقلين في C++
إذا كان البيان جافا
فيما يلي رمز مثال في لغة C++ يوضح كيفية إضافة متجهين:
#include #include std::vector addVectors(const std::vector& vec1, const std::vector& vec2) { // Check if the vectors have the same size if (vec1.size() != vec2.size()) { std::cout << 'Error: Vectors must have the same size to add them.' << std::endl; return std::vector(); } // Create a vector to store the result std::vector result(vec1.size()); // Add the elements of vec1 and vec2 and store the result in result for (int i = 0; i < vec1.size(); i++) { result[i] = vec1[i] + vec2[i]; } return result; } int main() { // Create two vectors std::vector vec1 = {1, 2, 3}; std::vector vec2 = {4, 5, 6}; // Add the two vectors std::vector result = addVectors(vec1, vec2); // Print the result std::cout << 'The result of adding the two vectors is: ['; for (int i = 0; i < result.size(); i++) { std::cout << result[i]; if (i != result.size() - 1) { std::cout << ', '; } } std::cout << ']' << std::endl; return 0; }
انتاج |
The result of adding the two vectors is: [5, 7, 9]
توضيح:
في هذا الكود، تأخذ الدالة addVectors متجهين كمدخلات وترجع متجهًا يحتوي على مجموع عناصر متجهات الإدخال. تقوم الوظيفة الرئيسية بإنشاء متجهين، vec1 وvec2، وتجميعهما معًا باستخدام وظيفة addVectors. ثم تتم طباعة النتيجة على وحدة التحكم.
لاحظ أن هذا الكود يفترض أن المتجهات لها نفس الحجم. إذا كانت المتجهات ذات أحجام مختلفة، فستقوم الدالة addVectors بإرجاع متجه فارغ وطباعة رسالة خطأ.