المتجه هو هيكل بيانات يخزن عدة عناصر من نفس النوع.المتجهات مفيدة لتخزين البيانات بطريقة مضغوطة ، ويمكن الوصول إليها بسرعة باستخدام وظائف مكتبة C ++ القياسية.لتغيير عنصر في متجه ، تحتاج أولاً إلى إنشاء كائن متجه ثم استخدام المُنشئ المناسب لتحديد حجم المتجه.بعد ذلك ، يمكنك استخدام وظيفة insert () لإضافة عناصر جديدة إلى نهاية المتجه ، أو يمكنك استخدام وظيفة delete () لإزالة العناصر من المتجه.أخيرًا ، يمكنك الوصول إلى العناصر الفردية في متجه باستخدام وظائف مكتبة C ++ القياسية مثل get () و set () و front ().

كيف تصرح عن المتجه في C ++؟

كيف تقوم بتغيير عنصر في متجه في C ++؟

لتغيير العنصر في الموضع "i" للمتجه ، استخدم الكود التالي:

المتجهv (v.push_back (v.

  1. ؛ // إنشاء 10 ناقلات مع عناصر كثافة العمليات
  2. ؛ // إضافة 5 إلى المتجه الأول

ما هي خصائص المتجه في C ++؟

المتجه في C ++ هو بنية بيانات تخزن سلسلة من العناصر.يمكن الوصول إلى كل عنصر في المتجه من خلال رقم الفهرس الخاص به ، مما يسهل الوصول إلى العناصر ومعالجتها.للناقل أيضًا العديد من الخصائص الأخرى ، بما في ذلك:

- يمكن أن ينمو الناقل أو يتقلص حسب الحاجة.

- يدعم الوصول العشوائي لأي عنصر في التسلسل.

- إنها ذاكرة فعالة لأنها تستخدم مساحة أقل من القائمة أو المصفوفة عند تخزين نفس الكمية من البيانات.

كيف تقوم بتهيئة متجه في C ++؟

في C ++ ، يمكنك تهيئة متجه باستخدام فئة std :: vector.للقيام بذلك ، تحتاج أولاً إلى إنشاء مثيل لفئة std :: vector.بعد ذلك ، تحتاج إلى تحديد حجم المتجه.أخيرًا ، تحتاج إلى تهيئة عناصر المتجه.هنا مثال:

الأمراض المنقولة جنسيا :: ناقلاتت (10) ؛ // ينشئ ويهيئ متجهًا من 10 عناصر

v [0] = 0 ؛ // يعين العنصر في الموضع 0 إلى الصفر

الخامس [1] = 1 ؛ // يعين العنصر في الموضع 1 إلى واحد

الخامس [2] = 2 ؛ // يعين العنصر في الموضع 2 إلى 2

...

يمكنك أيضًا استخدام طرق تهيئة أخرى مثل استدعاءات المُنشئ الصريحة أو استخدام كائنات auto_ptr.لمزيد من المعلومات حول النواقل في C ++ ، يرجى الاطلاع على

.

كيف يمكنك الوصول إلى العناصر في متجه في C ++؟

هناك عدة طرق للوصول إلى العناصر في متجه في C ++.إن أبسط طريقة هي استخدام عامل الفهرسة ، []:

المتجهv (v [0] = 5 ؛ // يعين القيمة في الموضع 0 من v إلى 5

الخامس [1] = 6 ؛ // يعين القيمة في الموضع 1 من v إلى 6

الخامس [2] = 7 ؛ // يعين القيمة في الموضع 2 من v إلى 7

الطريقة الثانية هي استخدام عامل تشغيل الشرائح ، []:

المتجهالخامس (ضد شريحة (0 ، ضد شريحة (

الطريقة الثالثة هي استخدام حلقة for تعتمد على النطاق:

لـ (int i = 0 ؛ i :: const_iterator itr = v.begin () ؛ متجه:: const_iterator end = v.end () ؛ int val = * itr ++ ؛ }

الطريقة الرابعة هي استخدام مؤشر الدالة: void changeElementInVector (vector & vec) {vec [vec.size () - 1] = 7؛}

الطريقة الخامسة هي استخدام متغير مكرر: int main () {vectors ("أهلاً بالعالم!") ؛

تأخذ ChangeElementInVector وسيطتين - vec ، والتي يجب أن تكون كائنًا متجهًا صالحًا وستقوم changeElementInVector بعملها مع هذا الكائن.هناك العديد من الطرق التي يمكنك من خلالها الوصول إلى العناصر في المتجهات ولكن هذه بعض العناصر الشائعة.

  1. ؛ // v يحتوي على القيم 0 و 1 و 2 و 3 و 4
  2. ؛ // v يحتوي على القيم 0 و 1 و 2 و 3 و 4
  3. = 5 ؛ // يعين القيمة في الموضع من 0 إلى 3 من v إلى 5
  4. = 8 ؛ // يعين القيمة في الموضع 4 من خلال جميع العناصر من v إلى 8

كيف تقوم بتغيير عنصر في متجه في C ++؟

هناك عدة طرق لتغيير عنصر في متجه في C ++.إن أبسط طريقة هي استخدام دالة std :: vector :: push_back () ، والتي ستضيف العنصر الجديد في نهاية المتجه.هناك طريقة أخرى وهي استخدام الدالة std :: vector :: resize () ، والتي ستغير حجم المتجه بحيث يمكنه الاحتفاظ بالعدد الجديد من العناصر.أخيرًا ، يمكنك استخدام أحد الخوارزميات المضمنة في C ++ للعثور على عنصر واستبداله في ناقل.

ما هو الفرق بين المصفوفة و avector في C ++؟

المتجه هو هيكل بيانات يخزن سلسلة من العناصر.المصفوفة هي بنية بيانات تخزن عنصرًا واحدًا ثابت الحجم.يمكن الوصول إلى المتجه في وقت O (1) ، بينما يمكن أن تستغرق المصفوفة وقتًا يتناسب مع حجم المصفوفة.بالإضافة إلى ذلك ، تكون المتجهات أكثر كفاءة عندما يتعلق الأمر باستخدام الذاكرة لأنها تستخدم مساحة أقل من المصفوفات.أخيرًا ، تدعم المتجهات الوصول العشوائي ، مما يعني أنه يمكنك العثور بسرعة على عناصر معينة وتعديلها داخل المتجه دون الحاجة إلى البحث في جميع محتوياته.

هناك طريقتان رئيسيتان لإنشاء متجه في C ++: استخدام فئة std :: vector أو استخدام عامل التشغيل الجديد.تعتبر فئة std :: vector أسهل في الاستخدام ولكنها لا تحتوي على بعض الميزات التي يوفرها المشغل الجديد (مثل الوصول العشوائي). عند إنشاء متجه باستخدام عامل التشغيل الجديد ، يجب عليك تحديد عدد العناصر التي سيتم تخزينها في المتجه (وتسميتها أيضًا).

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

الأمراض المنقولة جنسيا :: ناقلاتالخامس؛ // ينشئ ويهيئ v بـ 5 ints v [0] = 1 ؛ // يعين 1 في الموضع 0 v [1] = 2 ؛ // يعين 2 في الموضع 1 v [2] = 3 ؛ // يعين 3 في الموضع 2 // لتغيير عنصر داخل بُعد آخر (على سبيل المثال ، من صفوف إلى أعمدة) ، استخدم cvt_dynamic ().

كيف تضيف عناصر إلى متجه في C ++؟

في C ++ ، يمكنك إضافة عناصر إلى متجه باستخدام وظيفة push_back ().بناء جملة هذه الوظيفة كما يلي:

المتجهت (ن) ؛ // إنشاء متجه بالحجم n

v.push_back (ر) ؛ // أضف t إلى نهاية المتجه

ستدرج وظيفة push_back () t في نهاية المتجه ، بغض النظر عما إذا كان v.size () أكبر من n أم لا.إذا كانت v.size () أكبر من n ، فإن v.push_back () سيغير حجم المتجه بحيث يحتوي على مساحة كافية لاستيعاب t وجميع العناصر اللاحقة.

كيف تزيل العناصر من vectorinC ++؟

في C ++ ، يمكنك إزالة العناصر من متجه باستخدام عامل الحذف.علي سبيل المثال:

المتجهالخامس؛ // إنشاء متجه من ints v.push_back (1) ؛ // أضف 1 إلى نهاية المتجه v.push_back (2) ؛ // إضافة 2 إلى نهاية المتجه ، حذف [] v ؛ // يزيل كل العناصر الموجودة في المتجه

عامل الحذف يعمل على المصفوفات وكذلك المتجهات.لإزالة عنصر من مصفوفة ، استخدم وظيفة erase ():

مجموعة مصفوفةآر. آر.

ما هي بعض العمليات الشائعة على vectorsinC ++؟

  1. كيفية إضافة عنصر إلى متجه في C ++؟
  2. كيفية حذف عنصر من متجه في C ++؟
  3. كيفية تغيير حجم متجه في C ++؟
  4. كيفية نسخ متجه في C ++؟
  5. كيفية عكس ترتيب العناصر في متجه في C ++؟

كيف يمكنك فرز عناصر avectorinC ++؟

هناك عدة طرق لفرز عناصر المتجه في C ++.إن أبسط طريقة هي استخدام دالة std :: sort ().تأخذ هذه الوظيفة وسيطين: الأولى هي المتجه المراد فرزها ، والثانية هي دالة مقارنة تحدد كيفية مقارنة العناصر.يوضح مثال الكود التالي كيفية استخدام std :: sort () لفرز متجه من الأعداد الصحيحة:

الأمراض المنقولة جنسيا :: ناقلاتالخامس؛ // إنشاء متجه من الأعداد الصحيحة

v.push_back (الأمراض المنقولة جنسياً :: متجه:: مكرر itr = v.begin () ؛ الأمراض المنقولة جنسيا :: ناقلات:: مكرر enditr = v.end () ؛ لـ (؛ itr! = enditr؛ ++ itr) {cout

يفرز مثال الكود هذا متجهًا من الأعداد الصحيحة باستخدام وظائف مكتبة C ++ القياسية ، بما في ذلك push_back () و المشغل + و المشغل- *.لفرز مصفوفة باستخدام هذه الوظائف ، يجب أولاً تعريف متغير مصفوفة ثم تخصيص محتوياته لهذا المتغير قبل استدعاء إحدى هذه الدوال عليه.على سبيل المثال ، إليك كيفية التصريح عن مصفوفة عدد صحيح باسم myArray وتهيئتها ببعض القيم:

myArray [0] = 1 ؛ myArray [1] = 2 ؛ myArray [2] = 3 ؛ ثم يمكنك استدعاء std :: sort () على myArray مثل هذا:

std :: sort (myArray، [] (const int & x، const int & y) {return x> y؟1: -1 ؛}) ؛ لاحظ أنه عند فرز مصفوفة باستخدام وظائف مكتبة C ++ القياسية ، يجب عليك تحديد وظيفة العضو التي تريد استخدامها كوظيفة مقارنة - في هذه الحالة ، [] (const int & x، const int & y) {return x> y؟1: -1 ؛}. إذا لم تحدد وظيفة العضو التي تريد استخدامها كوظيفة مقارنة ، فإن C ++ ستعمل بشكل افتراضي على مقارنة كل عنصر من المصفوفات بطريقة معجمية - أي من أقصى اليسار إلى أقصى اليمين داخل كل بُعد من أبعاد كائن المصفوفة.يمكنك أيضًا استخدام خوارزميات مكتبة C ++ القياسية مثل البحث الثنائي أو الفرز السريع بدلاً من المقارنات البسيطة عند فرز المصفوفات.لمزيد من المعلومات حول فرز المصفوفات في C ++ ، راجع القسم

تتمثل إحدى المهام الشائعة التي تتضمن المتجهات في العثور على جميع العناصر داخل نطاق معين - على سبيل المثال ، إيجاد جميع الأرقام الفردية بين 1 و 10 شاملًا أو جميع الأرقام الزوجية بين 0 و 9 ضمناً.

  1. ؛ v.push_back (؛ v.push_back (؛ // فرز عناصر المتجه باستخدام std :: sort (). // لاحظ أن هذا الرمز يستخدم الأقواس لأن هناك ثلاث وسائط // تم تمريرها إلى std :: sort (). int قارن = 0 ؛ لـ (auto & e: v) {if (e> {Compar = 1؛} else if (e> {قارن = -1؛} else {continue؛}} إذا (قارن! = {std :: كوت
  2. 5 "فرز المصفوفات" في الفصل 9 "وظائف" في مرجع المكتبة القياسي.

ما مدى تعقيد العمليات المختلفة في المتجهات في C ++؟

لا توجد إجابة واحدة تناسب الجميع على هذا السؤال ، لأن تعقيد العمليات المختلفة على المتجهات في C ++ سيختلف اعتمادًا على التنفيذ المحدد.ومع ذلك ، يمكن تقديم بعض النصائح العامة حول كيفية تغيير عنصر في متجه في C ++ أدناه.

أولاً وقبل كل شيء ، من المهم أن نفهم أن تغيير عنصر في متجه في C ++ ليس عادةً عملية معقدة بشكل خاص.في الواقع ، تسمح معظم تطبيقات C ++ بحساب المؤشر البسيط وعمليات الفهرسة الأساسية لاستخدامها في تعديل العناصر داخل المتجه.على هذا النحو ، فإن تعقيد تعديل عنصر داخل المتجه يعتمد عادةً فقط على سرعة التنفيذ الخاص بك ومعرفتك ببنيات البرمجة ذات الصلة.

بشكل عام ، ومع ذلك ، يمكن غالبًا تغيير عنصر داخل ناقل باستخدام عدد قليل نسبيًا من سطور التعليمات البرمجية أو حتى عبارات فردية.وفقًا لذلك ، إذا لم تكن معتادًا على أي بنيات برمجة محددة تتعلق بالمتجهات أو تريد تقليل مقدار التعليمات البرمجية التي تحتاج إلى كتابتها من أجل تعديل عنصر داخل متجه ، فقد يكون من المفيد استشارة الموارد عبر الإنترنت أو مراجعة عينات التعليمات البرمجية الموجودة من قبل بدء مشروعك الخاص.