דילוג לתוכן המרכזי
מודול 5 · שיעור 1 מתוך 211/18 בקורס~12 min
שיעורי מודול (1/2)

מערכים ווקטורים

ב-C++, ניהול אוספי נתונים מתבצע בעיקר באמצעות שני כלים: מערכים בסגנון ישן (מערכים בסגנון C) ו-וקטורים (std::vector). הבנת ההבדל בין זיכרון סטטי ודינאמי היא בסיסית לכתיבת קוד יעיל.


1. מערכים סטטיים (מערכים בסגנון C)

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

C++
int grades[5] = {18, 22, 25, 28, 30}; // Array of 5 integers

מאפיינים מרכזיים:

  • גודל קבוע: לא ניתן להוסיף או להסיר אלמנטים בזמן ריצה.
  • הקצאת מחסנית: מהיר מאוד להקצאה ולפיזור.
  • גישה: נעשה באמצעות אופרטור האינדקס [] (לדוגמה, grades[0] עבור האלמנט הראשון).

2. וקטורים דינמיים (std::vector)

ספריית התבניות הסטנדרטית של C++ (STL) מספקת את המחלקה std::vector, המייצגת מערך דינמי. כדי להשתמש בו, עליך לכלול את הכותרת <vector>:

C++
#include <vector>

std::vector<int> numbers; // Creates an empty vector of integers

פעולות נפוצות:

  • הוסף לסוף: שיטת .push_back(value) מכניסה אלמנט בקצה הווקטור, ומקצה מחדש את הזיכרון באופן אוטומטי במידת הצורך.
  • גודל: שיטת .size() מחזירה את מספר האלמנטים הנוכחיים בווקטור.
  • גישה בטוחה: בנוסף לאופרטור [], אתה יכול להשתמש בשיטת .at(index) (לדוגמה, numbers.at(0)), אשר זורקת חריגה אם האינדקס הוא מחוץ לתחום.
C++
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores now contains {90, 85, 95}
std::cout << scores.size(); // Prints 3

נסה זאת בעצמך

פעילות גופנית#cpp.m5.l1.e1
ניסיונות: 0טוען...

הכריז על סטד::וקטור של מספרים שלמים בשם מספרים. הוסף את הערכים 10, 20 ו-30 בתוכו באמצעות שיטת .push_back() ולאחר מכן הדפס את גודלו באמצעות numbers.size().

טוען עורך...
הצג רמז

הכריז על הווקטור עם `std::vector<int> numbers;`, הכנס את שלושת המספרים עם `.push_back(value)`והדפיס אותו עם`std::cout << numbers.size();`.

הפתרון זמין לאחר 3 ניסיונות

פעילות גופנית#cpp.m5.l1.e2
ניסיונות: 0טוען...

ב-main, מוגדר מערך ציונים של 5 אלמנטים. כתוב לולאת for כדי לחשב את הסכום של כל האלמנטים במערך, אחסן אותו בסכום המשתנה והדפיס אותו באמצעות std::cout.

טוען עורך...
הצג רמז

השתמש בלולאה `for (int i = 0; i < 5; ++i)`וסכם כל רכיב בתוך הלולאה עם`sum += ציונים[i];`.

הפתרון זמין לאחר 3 ניסיונות

Quiz#cpp.m5.l1.q1
מוכן

מהי השיטה הנכונה לצרף אלמנט לסוף std::vector ב-C++?

C++
std::vector<int> numbers; // come aggiungere il valore 50?
אפשרויות תשובה