Menu
Coddy logo textTech

הוספת איברים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C++ של Coddy. שיעור 11 מתוך 56.

עכשיו, כשאתם יודעים איך ליצור וקטורים, בואו נלמד איך להוסיף להם איברים לאחר יצירתם. המתודה push_back() היא הכלי העיקרי שלכם להגדלת וקטור באמצעות הוספת איברים חדשים לסופו.

המתודה push_back() מקבלת ארגומנט יחיד - הערך שברצונך להוסיף - ומוסיפה אותו לסוף הווקטור:

std::vector<int> numbers;
numbers.push_back(10);
numbers.push_back(20);
numbers.push_back(30);

בדוגמה הזאת, אנחנו מתחילים עם וקטור ריק ומשתמשים ב־push_back() כדי להוסיף שלושה מספרים שלמים. לאחר הפעולות האלה, הווקטור שלנו מכיל את האיברים [10, 20, 30] בסדר הזה.

היתרון של push_back() הוא שהוא מטפל בכל ניהול הזיכרון באופן אוטומטי. כשמוסיפים איברים והווקטור אוזל המקום, הוא מקצה באופן אוטומטי זיכרון נוסף ומעתיק את האיברים הקיימים למיקום החדש. כך וקטורים נוחים להפליא לבניית אוספי נתונים כשלא יודעים מראש מה יהיה הגודל הסופי.

challenge icon

אתגר

קל

צרו תוכנית שמדגימה הוספת איברים למערך וקטורי באמצעות השיטה push_back(). התחילו במערך וקטורי ריק ובנו אותו באופן דינמי על ידי הוספת מספרים בסדר מסוים.

הקלטים הבאים יסופקו:

  • מספר שלם n המייצג כמה מספרים יש להוסיף למערך הווקטורי
  • לאחר מכן, n מספרים שלמים שיש להוסיף למערך הווקטורי אחד בכל פעם

התוכנית שלכם צריכה:

  1. ליצור std::vector<int> ריק בשם numbers
  2. להשתמש בלולאה כדי לקרוא כל אחד מ-n מספרי הקלט
  3. עבור כל מספר, להשתמש ב-push_back() כדי להוסיף אותו לסוף המערך הווקטורי
  4. לאחר הוספת כל מספר, להדפיס את הגודל הנוכחי של המערך הווקטורי ואת המספר שזה עתה נוסף
  5. לבסוף, להדפיס את כל האיברים במערך הווקטורי בשורה אחת, מופרדים ברווחים

השתמשו בפורמט הפלט המדויק הבא:

Added [number], size is now [current size]
Added [number], size is now [current size]
...
Final vector: [num1] [num2] [num3] ...

השתמשו בשיטה .size() כדי לקבל את מספר האיברים הנוכחי במערך הווקטורי לאחר כל הוספה. עבור הפלט הסופי, השתמשו באופרטור הסוגריים המרובעים [] כדי לגשת לכל איבר לפי האינדקס שלו.

נסו בעצמכם

#include <iostream>
#include <vector>
using namespace std;

int main() {
    // קרא את מספר האיברים שיש להוסיף
    int n;
    cin >> n;
    
    // צור וקטור ריק
    vector<int> numbers;
    
    // TODO: כתוב את הקוד שלך כאן
    // קרא n מספרים והוסף אותם לווקטור באמצעות push_back()
    // הדפס את הפלט הנדרש לאחר כל הוספה
    
    // הדפס את הווקטור הסופי
    cout << "Final vector: ";
    // TODO: הדפס את כל האיברים כשהם מופרדים ברווחים
    
    return 0;
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר C++ אונליין