Menu
Coddy logo textTech

קבוצה

שיעור 8 מתוך 23 בקורס C++ - ספריית התבניות הסטנדרטית של Coddy.

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


ה־Set ב־C++ הוא סוג של מכולה אסוציאטיבית המאחסנת איברים ייחודיים מאותו סוג בסדר ממוין. פירוש הדבר הוא שכל איבר יכול להופיע ב־set פעם אחת בלבד. 

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

set<int> mySet = {5, 10, 3, 5};

מממשים קבוצות באמצעות קובץ הכותרת #include <set>, או שאפשר לכלול את כל קובצי הכותרת כפי שצוין בשיעורים הקודמים באמצעות #include <bits/stdc++.h>

set<int> mySet = {5, 10, 3, 5};

for (int i = mySet.begin(); i != mySet.end(); i++)
	cout << *i << " ";
Output:
3 5 10

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


מוסיפים איברים ל־set באמצעות המתודה insert().

mySet.insert(50);

כמו כן, אי אפשר לשנות את הערכים של האיברים לאחר הוספתם ל־set; אפשר רק להסיר אותם ולהוסיף איברים חדשים.


מתודות של Set

מתודהתפקיד
begin()מחזירה איטרטור שמצביע על האיבר הראשון ב־set
end()מחזירה איטרטור שמצביע על האיבר האחרון ב־set
size()מחזירה את מספר האיברים ב־set
empty()מחזירה אם ה־set ריק (1) או לא (0)
count()מחזירה 1 אם איבר נמצא ב־set, ואחרת 0
challenge icon

אתגר

קל

נתונים 10 מספרים מהקלט. בעזרת קבוצה, הציגו רק את המספרים הייחודיים.

 

Input
5
10
1
5
3
5
10
8
6
7
Output
5
10
1
3
8
6
7

נסו בעצמכם

#include <set>
#include <iostream>

using namespace std;

int main()
{
    // Enter your code here

    return 0;
}

כל השיעורים ביחידה C++ - ספריית התבניות הסטנדרטית

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