يعد العمل مع المصفوفات أحد المهام الرئيسية التي يواجهها المطورون في لغة برمجة سي++. تتمثل إحدى المهام الشائعة في إضافة عنصر إلى نهاية المصفوفة. في هذه المقالة ، سننظر في طرق مختلفة لتنفيذ هذه العملية.
تتمثل إحدى أسهل الطرق لإضافة عنصر إلى نهاية المصفوفة في استخدام وظيفة الضغط الخلفي () من مكتبة المتجهات. يوفر المتجه تغيير حجم المصفوفة الديناميكي وإدارة الذاكرة التلقائية. تضيف وظيفة الضغط الخلفي () عنصرا إلى نهاية المصفوفة ، مما يزيد حجمه بمقدار عنصر واحد.
إذا كنت بحاجة إلى إضافة عنصر إلى مصفوفة موجودة ذات حجم ثابت ، فيمكنك استخدام الأسلوب التالي. أولا ، يتم إنشاء مصفوفة جديدة أكبر من المصفوفة الأصلية باستخدام المشغل الجديد. ثم يتم نسخ العناصر من المصفوفة الأصلية إلى المصفوفة الجديدة ، ويتم إضافة العنصر الجديد إلى النهاية. بعد ذلك ، يتم تحرير الذاكرة المخصصة للمصفوفة المصدر باستخدام عامل حذف [].
من المهم ملاحظة أنه عند استخدام هذا الأسلوب ، يجب أن تكون حذرا في إدارة الذاكرة. يجب عليك دائما التأكد من أن الذاكرة المخصصة للمصفوفات قد تم تحريرها بشكل صحيح لتجنب تسرب الذاكرة.
- تحديد وتهيئة مصفوفة
- إعلان وإضافة عنصر جديد إلى نهاية المصفوفة
- باستخدام طريقة الدفع() المضمنة
- استخدام حلقة لإضافة عنصر إلى نهاية صفيف
- التحقق من طول المصفوفة قبل إضافة عنصر
- العمل مع المصفوفات الديناميكية
- مثال على استخدام إضافة عنصر إلى نهاية المصفوفة
- سؤال وجواب
- الطريقة التي يجب أن تستخدم لإضافة عنصر إلى نهاية مجموعة?
- كيف أعلن مصفوفة في نهاية العناصر التي يمكن إضافتها?
- ما نوع البيانات التي يمكن إضافتها إلى نهاية المصفوفة?
- هل هناك طريقة أكثر فعالية لإضافة عنصر إلى نهاية مجموعة?
- هل من الممكن إضافة عدة عناصر في وقت واحد إلى نهاية المصفوفة?
- هل من الممكن إضافة عنصر إلى نهاية مصفوفة دون استخدام متجه?
تحديد وتهيئة مصفوفة
المصفوفة هي مجموعة من العناصر من نفس النوع مجتمعة تحت نفس الاسم. يحتوي كل عنصر من عناصر المصفوفة على رقم ترتيبي خاص به ، يسمى الفهرس ، والذي يسمح لك بالوصول إلى عنصر من خلال موقعه في المصفوفة.
تحديد صفيف في ج can يمكن القيام به على النحو التالي:
نوع بيانات اسم الصفيف [الحجم];
على سبيل المثال ، يبدو تحديد وتهيئة مجموعة من الأعداد الصحيحة بالحجم 5 كما يلي:
صفيف كثافة العمليات [5];
هنا " كثافة العمليات "هو نوع البيانات من عناصر مجموعة ،" مجموعة "هو اسم مجموعة ، و" [5] " هو حجم مجموعة.
تتضمن تهيئة المصفوفة تعيين قيم أولية لعناصرها. في ج++ ، هناك عدة طرق لتهيئة المصفوفات:
1. التهيئة المباشرة
أثناء التهيئة المباشرة ، يتم تعيين قيمة لكل عنصر من عناصر المصفوفة بين قوسين معقوفين ، مفصولة بفواصل:
اسم صفيف نوع البيانات [] = {القيمة 1, القيمة 2, ..., قيمة};
على سبيل المثال ، مجموعة من الأعداد الصحيحة مليئة بالقيم 1 ، 2 ، 3 ، 4 ، 5:
صفيف كثافة العمليات[] = {1, 2, 3, 4, 5};
2. التهيئة الدورية
تتيح لك التهيئة الدورية ملء جميع عناصر المصفوفة بنفس القيمة:
اسم صفيف نوع البيانات [الحجم] ={القيمة};
على سبيل المثال ، مجموعة من الأعداد الصحيحة مليئة القيمة 0:
صفيف كثافة العمليات [5] = {0};
3. التهيئة في الإعلان
عند الإعلان عن مصفوفة ، يمكنك تحديد عناصرها على الفور:
اسم صفيف نوع البيانات [] {القيمة 1, القيمة 2, ..., قيمة};
على سبيل المثال ، مجموعة من الأعداد الصحيحة مليئة بالقيم 1 ، 2 ، 3 ، 4 ، 5:
صفيف كثافة العمليات[]{1, 2, 3, 4, 5};
لاحظ أنه في هذه الحالة ، لم يتم تحديد حجم الصفيف ، لأن المترجم نفسه يحدده بناء على عدد القيم المحددة.
الآن أنت تعرف كيفية تحديد وتهيئة المصفوفات في ج++. اختر طريقة التهيئة المناسبة لمهمتك ، وسيصبح العمل مع المصفوفات أكثر ملاءمة وكفاءة.
إعلان وإضافة عنصر جديد إلى نهاية المصفوفة
في لغة البرمجة سي programming ، المصفوفات هي بنية بيانات تسمح لك بتخزين مجموعة من العناصر من نفس النوع. إذا كنت بحاجة إلى إضافة عنصر جديد إلى نهاية المصفوفة ، فيمكنك استخدام الطريقة التالية:
- إعلان صفيف: قبل إضافة عنصر جديد ، يجب عليك إعلان صفيف من النوع المطلوب وتعيين حجمه. على سبيل المثال ، لإعلان مجموعة من الأعداد الصحيحة بحجم 5 عناصر ، يمكنك استخدام البناء التالي:
صفيف كثافة العمليات [5];
- ملء صفيف: بعد إعلان صفيف ، يمكنك ملء عناصره بالقيم. على سبيل المثال ، لملء جميع عناصر المصفوفة بأعداد صحيحة من 1 إلى 5 ، يمكنك استخدام الكود التالي:
إلى عن على (كثافة العمليات أنا = 0; أنا < 5; أنا i) {
صفيف [أنا] = أنا + 1;
}
- . على سبيل المثال ، دعنا نضيف عنصرا بالقيمة 6:
كثافة العمليات * نيوراي = كثافة العمليات الجديدة [6];
إلى عن على (كثافة العمليات أنا = 0; أنا < 5; أنا i) {
نيوراي [أنا] = صفيف [أنا];
}
نيوراي [5] = 6;
حذف [] صفيف;
صفيف = نيوراي;
- ، يمكنك استخدام الكود التالي:
حذف [] صفيف;
صفيف = نيوراي;
لتحرير هذه الذاكرة بعد تعيين مصفوفة جديدة لمتغير.
باستخدام طريقة الدفع() المضمنة
إنها وظيفة مضمنة في لغة البرمجة ج that التي يتم استخدامها لإضافة عنصر جديد إلى نهاية صفيف أو متجه. يسمح لك بإضافة عناصر دون تحديد فهرس ، مما يجعلها مريحة وسهلة الاستخدام.
منذ يتم استخدام هذه الطريقة للعمل مع ناقلات في ج++.
:
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
الأمراض المنقولة جنسيا:: أرقام المتجهات ؛ / / إعلان المتجه
أرقام.دفع الظهر(1) ؛ / / إضافة العنصر 1 إلى نهاية المتجه
أرقام.دفع الظهر(2) ؛ / / إضافة العنصر 2 إلى نهاية المتجه
أرقام.دفع الظهر(3) ؛ / / إضافة العنصر 3 إلى نهاية المتجه
إلى عن على (كثافة العمليات ط = 0; أنا < أرقام.الحجم () ؛ أنا {) {
الأمراض المنقولة جنسيا::كوت < < أرقام[أنا]<<"";
}
العودة 0;
}
. ستكون نتيجة البرنامج:
1 2 3
لإضافة عناصر في أي وقت من تنفيذ البرنامج. تسمح لك هذه الطريقة بتوسيع حجم المتجه ديناميكيا عن طريق إضافة عناصر جديدة إلى نهاية المصفوفة.
) ولا يمكن استخدامها لأنواع أخرى من المصفوفات ، مثل المصفوفات الثابتة أو الديناميكية.
استخدام حلقة لإضافة عنصر إلى نهاية صفيف
تعد إضافة عنصر إلى نهاية المصفوفة واحدة من أكثر العمليات شيوعا عند العمل مع المصفوفات. يمكن أن يكون هذا مفيدا عندما تحتاج إلى زيادة حجم المصفوفة ديناميكيا أو إضافة عناصر جديدة أثناء تشغيل البرنامج. النظر في مثال على استخدام حلقة لإضافة عنصر إلى نهاية مجموعة باستخدام لغة البرمجة ج programming.
أولا ، لنقم بإنشاء مصفوفة تحتوي على بعض العناصر الأولية:
# تشمل
باستخدام مساحة الاسم الأمراض المنقولة جنسيا;
كثافة العمليات الرئيسية () {
إنت آر[5] = {1, 2, 3, 4, 5};
كثافة العمليات الحجم = 5;
// الرمز الخاص بك هنا
هو العودة 0;
}
لإضافة عنصر إلى نهاية المصفوفة باستخدام حلقة ، تحتاج إلى إنشاء مصفوفة جديدة ، حجمها أكبر بمقدار 1 من المصفوفة الأصلية ، ونسخ جميع العناصر من المصفوفة الأصلية إلى المصفوفة الجديدة. ثم ، في المصفوفة الجديدة ، يتم تعيين العنصر الأخير قيمة يجب إضافتها إلى النهاية.
للقيام بذلك ، قم بإنشاء حلقة تقوم بنسخ العناصر من المصفوفة الأصلية إلى المصفوفة الجديدة:
إنت نيوفالو = 6 ؛ / / القيمة التي يمكن إضافتها إلى نهاية الصفيف
// إنشاء مصفوفة جديدة بحجم 1 أكبر من المصفوفة الأصلية
إنت نوار [حجم + 1];
// نسخ العناصر من المصفوفة الأصلية إلى المصفوفة الجديدة
ل (إنت أنا = 0 ؛ أنا < الحجم ؛ أنا i) {
نوار [أنا] = أر [أنا];
}
بعد نسخ جميع العناصر من المصفوفة الأصلية ، يبقى فقط لإضافة قيمة جديدة إلى نهاية المصفوفة الجديدة:
// إضافة قيمة جديدة إلى نهاية المصفوفة الجديدة
نوار [حجم] = جديدقيمة;
يمكنك الآن استخدام مصفوفة جديدة تحتوي على عناصر من المصفوفة الأصلية والعنصر المضاف. على سبيل المثال ، يمكنك إخراج جميع عناصر صفيف جديد باستخدام حلقة:
// إخراج عناصر مصفوفة جديدة
ل (إنت أنا = 0 ؛ أنا < = الحجم ؛ أنا i) {
كوت < < نوار [أنا]<<"";
}
نتيجة لذلك ، سيبدو الرمز الكامل كما يلي:
# تشمل
باستخدام مساحة الاسم الأمراض المنقولة جنسيا;
كثافة العمليات الرئيسية () {
إنت آر[5] = {1, 2, 3, 4, 5};
كثافة العمليات الحجم = 5;
إنت نيوفالو = 6;
// إنشاء مصفوفة جديدة بحجم 1 أكبر من المصفوفة الأصلية
إنت نوار [حجم + 1];
// نسخ العناصر من المصفوفة الأصلية إلى المصفوفة الجديدة
ل (إنت أنا = 0 ؛ أنا < الحجم ؛ أنا i) {
نوار [أنا] = أر [أنا];
}
// إضافة قيمة جديدة إلى نهاية صفيف جديد
نوار [حجم] = جديدقيمة;
// إخراج عناصر المصفوفة الجديدة
ل (إنت أنا = 0 ؛ أنا < = الحجم ؛ أنا i) {
كوت < < نوار [أنا]<<"";
}
العودة 0;
}
بعد تشغيل البرنامج ، سترى أنه تمت إضافة عنصر جديد 6 إلى المصفوفة الأصلية:
1 2 3 4 5 6هذا هو المبدأ الأساسي لاستخدام حلقة لإضافة عنصر إلى نهاية صفيف باستخدام لغة البرمجة ج programming. إذا لزم الأمر ، يمكن استخدام خوارزميات أكثر تعقيدا لنسخ العناصر أو إضافتها ، لكن الفكرة الأساسية تظل دون تغيير.
التحقق من طول المصفوفة قبل إضافة عنصر
قبل إضافة عنصر إلى نهاية المصفوفة ، من المهم التحقق من طوله لتجنب تجاوز حدود المصفوفة أو تجاوز السعة المحتمل. يمكنك استخدام العبارات الشرطية والشيكات للقيام بذلك.
للحصول على طول صفيف. تقوم هذه الوظيفة بإرجاع عدد العناصر في المصفوفة.
نموذج التعليمات البرمجية:
# تشمل
باستخدام مساحة الاسم الأمراض المنقولة جنسيا;
كثافة العمليات الرئيسية () {
إنت مياراي[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
عدد العناصر الداخليةإضافة = 11;
// التحقق من طول المصفوفة
إذا (الحجم (مياراي) < 10) {
مياراي [الحجم (مياراي)] = عنصرإضافة;
كوت < < " تمت إضافة العنصر بنجاح!"<<إندل;
} آخر {
كوت < < " الصفيف ممتلئ بالفعل!"<<إندل;
}
العودة 0;
}
إلى نهاية المصفوفة. قبل الإضافة ، نتحقق من أن طول المصفوفة أقل من 10. إذا تم استيفاء هذا الشرط ، نضيف عنصرا إلى نهاية المصفوفة وإخراج الرسالة المقابلة. إذا كان طول الصفيف يساوي بالفعل أو يتجاوز 10 ، فإننا نعرض رسالة مفادها أن الصفيف قد اكتمل بالفعل.
وبالتالي ، فإن التحقق من طول المصفوفة قبل إضافة عنصر يساعد على تجنب الأخطاء ويضمن التشغيل الصحيح مع المصفوفات في ج++.
العمل مع المصفوفات الديناميكية
في لغة البرمجة سي programming ، من الممكن العمل مع المصفوفات الديناميكية. المصفوفة الديناميكية هي بنية بيانات تسمح لك بزيادة أو تقليل حجم المصفوفة أثناء تنفيذ البرنامج.
للعمل مع المصفوفات الديناميكية في ج++ ، يتم استخدام المشغل الجديد لتخصيص الذاكرة لمصفوفة ومشغل الحذف لتحرير الذاكرة.
مثال على إنشاء مصفوفة ديناميكية:
كثافة العمليات * ديناميكاراي = كثافة العمليات الجديدة[5];
في هذا المثال ، يتم إنشاء مصفوفة ديناميكية تتكون من 5 عناصر كثافة العمليات. تستخدم الفهرسة للوصول إلى عناصر المصفوفة الديناميكية ، وكذلك لصفيف ثابت.
مثال على إضافة عنصر إلى نهاية صفيف ديناميكي:
// إنشاء مصفوفة مؤقتة أكبر
إنت نيوزيزي = 6;
إنت * تيمباراي = نيو إنت [نيوزيزي];
// نسخ العناصر من المصفوفة السابقة
ل (إنت أنا = 0 ؛ أنا < نيوزيزي-1 ؛ أنا i)
{
تيمباراي [أنا] = ديناميكاراي [أنا];
}
// إضافة عنصر جديد
تيمباراي [نيوزيزي-1] = نيوفالو;
// تحرير ذاكرة المصفوفة السابقة
حذف [] ديناميكاراي;
// الإشارة إلى مصفوفة جديدة
ديناميكاراي = تيمباراي;
في هذا المثال ، يتم إنشاء مصفوفة مؤقتة بحجم أكبر ، حيث يتم نسخ جميع العناصر من المصفوفة السابقة. ثم يتم إضافة عنصر جديد إلى نهاية المصفوفة المؤقتة. بعد ذلك ، يتم تحرير الذاكرة المخصصة للمصفوفة السابقة ، ويتم إعادة توجيه المؤشر إلى هذه الذاكرة إلى المصفوفة الجديدة.
عند العمل مع المصفوفات الديناميكية ، من الضروري أيضا مراعاة تفاصيل حذف العناصر أو تغيير حجم المصفوفة في المنتصف. للقيام بذلك ، تحتاج إلى إعادة تخصيص الذاكرة ونسخ العناصر إلى صفيف جديد.
باستخدام المصفوفات الديناميكية ، يمكنك إدارة حجم ومحتويات المصفوفة بمرونة أثناء تنفيذ البرنامج ، مما يسمح لك بحل المهام المختلفة بشكل فعال.
مثال على استخدام إضافة عنصر إلى نهاية المصفوفة
في ال ج programming لغة البرمجة ، يمكنك إضافة عنصر إلى نهاية المصفوفة باستخدام دالة دفع الظهر () في المتجهات أو طريقة دفع الظهر() في المصفوفات الديناميكية.
يوجد أدناه مثال على رمز يوضح كيفية إضافة عنصر إلى نهاية صفيف باستخدام دالة الدفع للخلف () في المتجهات:
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
الأمراض المنقولة جنسيا:: أرقام ناقلات; // إنشاء متجه فارغ للأعداد الصحيحة
// إضافة عناصر إلى نهاية المتجه
أرقام.دفع الظهر (1);
أرقام.دفع الظهر(2);
أرقام.دفع الظهر(3);
// عناصر ناقلات الإخراج
إلى عن على (كثافة العمليات ط = 0; أنا < أرقام.الحجم () ؛ i أنا) {
الأمراض المنقولة جنسيا:: كوت << أرقام[أنا] << " ";
}
العودة 0;
}
يقوم البرنامج أعلاه بإنشاء متجه فارغ للأعداد الصحيحة ، ثم يضيف العناصر 1 و 2 و 3 إلى نهاية المتجه باستخدام وظيفة الضغط الخلفي (). ثم يعرض جميع عناصر المتجه على الشاشة.
هذا سوف الإخراج:
1 2 3الآن دعنا نلقي نظرة على مثال رمز يوضح كيفية إضافة عنصر إلى نهاية المصفوفة باستخدام طريقة الدفع للخلف () في المصفوفات الديناميكية:
# تشمل
كثافة العمليات الرئيسية () {
كثافة العمليات * أرقام = كثافة العمليات الجديدة[3] ؛ / / إنشاء مجموعة ديناميكية مع ثلاثة عناصر
// إضافة عناصر إلى نهاية المصفوفة
numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
// Добавление нового элемента в конец массива
int newSize = 4;
int* newNumbers = new int[newSize];
for (int i = 0; i < newSize - 1; ++i) {
newNumbers[i] = numbers[i];
}
newNumbers[newSize - 1] = 4;
delete[] numbers; // Освобождение памяти от старого массива
numbers = newNumbers; // Присваивание нового массива указателю numbers
// Вывод элементов массива
for (int i = 0; i < newSize; ++i) {
std::cout << numbers[i] << " ";
}
حذف [] أرقام;
العودة 0;
}
يقوم البرنامج أعلاه أولا بإنشاء مصفوفة ديناميكية بثلاثة عناصر ، ثم يضيف العناصر 1 و 2 و 3 إلى نهايته. ثم يقوم بإنشاء مصفوفة ديناميكية جديدة بأربعة عناصر ونسخ جميع العناصر من المصفوفة الأصلية إلى المصفوفة الجديدة بالإضافة إلى إضافة عنصر جديد 4 إلى النهاية. أخيرا ، يعرض جميع عناصر المصفوفة الجديدة على الشاشة.
هذا سوف الإخراج:
1 2 3 4الآن أنت تعرف كيفية إضافة عنصر إلى نهاية صفيف باستخدام ج++.
سؤال وجواب
الطريقة التي يجب أن تستخدم لإضافة عنصر إلى نهاية مجموعة?
لإضافة عنصر إلى نهاية صفيف في ج++ ، يمكنك استخدام طريقة الدفع ().
كيف أعلن مصفوفة في نهاية العناصر التي يمكن إضافتها?
لإعلان صفيف في نهاية العناصر التي يمكن إضافتها ، يجب عليك استخدام متجه بدلا من صفيف عادي.
ما نوع البيانات التي يمكن إضافتها إلى نهاية المصفوفة?
يمكنك إضافة عناصر من أي نوع بيانات إلى نهاية المصفوفة ، نظرا لأن المتجه في ج is هو فئة قالب ويمكن أن يعمل مع أنواع بيانات مختلفة.
هل هناك طريقة أكثر فعالية لإضافة عنصر إلى نهاية مجموعة?
نعم ، هناك طريقة أكثر فاعلية لإضافة عنصر إلى نهاية المصفوفة ، خاصة عند العمل مع المصفوفات الكبيرة. بدلا من طريقة دفع الظهر () ، يمكنك استخدام وظيفة وضع الظهر () ، والتي تنشئ عنصرا جديدا في نهاية المصفوفة مباشرة دون نسخ غير ضروري.
هل من الممكن إضافة عدة عناصر في وقت واحد إلى نهاية المصفوفة?
نعم ، يمكنك إضافة عناصر متعددة في وقت واحد إلى نهاية المصفوفة باستخدام طرق دفع الظهر() أو وضع الظهر (). لإضافة عناصر متعددة ، يمكنك استخدام تهيئة القائمة أو حلقة.
هل من الممكن إضافة عنصر إلى نهاية مصفوفة دون استخدام متجه?
إذا كنت تعمل مع مصفوفة عادية ، فإن إضافة عنصر إلى نهايته سيكون غير فعال ، حيث سيتعين عليك نقل جميع عناصر المصفوفة. في هذه الحالة ، من الأفضل استخدام متجه يدير الذاكرة تلقائيا ويمكنه تغيير حجمه ديناميكيا.