הוספת איברים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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() הוא שהוא מטפל בכל ניהול הזיכרון באופן אוטומטי. כשמוסיפים איברים והווקטור אוזל המקום, הוא מקצה באופן אוטומטי זיכרון נוסף ומעתיק את האיברים הקיימים למיקום החדש. כך וקטורים נוחים להפליא לבניית אוספי נתונים כשלא יודעים מראש מה יהיה הגודל הסופי.
אתגר
קלצרו תוכנית שמדגימה הוספת איברים למערך וקטורי באמצעות השיטה push_back(). התחילו במערך וקטורי ריק ובנו אותו באופן דינמי על ידי הוספת מספרים בסדר מסוים.
הקלטים הבאים יסופקו:
- מספר שלם
nהמייצג כמה מספרים יש להוסיף למערך הווקטורי - לאחר מכן,
nמספרים שלמים שיש להוסיף למערך הווקטורי אחד בכל פעם
התוכנית שלכם צריכה:
- ליצור
std::vector<int>ריק בשםnumbers - להשתמש בלולאה כדי לקרוא כל אחד מ-
nמספרי הקלט - עבור כל מספר, להשתמש ב-
push_back()כדי להוסיף אותו לסוף המערך הווקטורי - לאחר הוספת כל מספר, להדפיס את הגודל הנוכחי של המערך הווקטורי ואת המספר שזה עתה נוסף
- לבסוף, להדפיס את כל האיברים במערך הווקטורי בשורה אחת, מופרדים ברווחים
השתמשו בפורמט הפלט המדויק הבא:
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;
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מצביעים וזיכרון
מהו מצביע?אופרטור קבלת כתובתאופרטור ביטול הפניהמצביעי Nullמצביעים ומערכיםזיכרון דינמי באמצעות 'new'שחרור זיכרון באמצעות 'delete'סיכום — תרגול מצביעים2וקטורים (מערכים דינמיים)
היכרות עם std::vectorיצירת וקטורהוספת איבריםגישה לאיבריםגודל הווקטורמעבר על איברים באמצעות לולאת forלולאת for מבוססת טווחהסרת איבריםסיכום — פעולות על וקטורים5פרויקט: כלי לניהול מלאי
הגדרת הפרויקטהוספה ועדכון של פריטיםתרגלו בעצמכם: קומפיילר C++ אונליין