Data Structure & STL (Part 4)


تحدثنا في مقالنا السابق عن Data Structure & STL (Part 3) ، والآن سنكمل حديثنا عن Data Structure & STL (Part 4) .


1-   Associative containers (الحاويات المترابطة):
تستخدم مفاتيح (keys ) للوصول لعناصرها وليس الموقع (index) .
المفاتيح يمكن ان تكون (int ,char, string….) .
من أنواعها :
1-    Map.
2-    Set.

2-   Associative container Map:
هي شجرة بحث ثنائية تخزن أزواج (Pairs) تعرف بالشكل :
Map<key, value> name;
الوصول للعناصر يتم عبر ال Key (بحث ثنائي على ال Key) .
إضافة العناصر تتم بشكلين :
1-    Map[key]= value;
2-    Map. Insert (make_pair (key, value));

3- Associative container set :
     هي شجرة بحث ثنائية تقوم بفرز عناصرها و حذف العناصر المكررة .
     تعرف بالشكل التالي :
Set<type> name;


    و الجدول التالي يوضح أهم التوابع المستخدمة مع كل من Set & Map :


Function
Work
Insert(item)
إضافة عنصر الى ال Set (Void)
Erase(item)
حذف عنصر من ال Set (Void)
Find(item)
يقوم بإجراء بحث ثنائي على العنصر و يعيد iterator  على العنصر في حال إيجاده و يعيد Set. End () في حال لم يكن موجود 

  مثال عن ال Set :

#include<iostream>
#include<set>
using namespace std;
int main ()
{
    int a [7] = {5,2,5,6,3,10,3};
    set <int> s (a, a+7);
    s. insert (11);
    set<int>::iterator t=s.begin();
    while(t!=s.end())
    {
        cout<<(*t)<<" ";
        t++;}
        if(s.find(5)==s.end())
        {
            cout<<"NOT FOUND"<<endl;
        }
        else
        {
            cout<<"FOUND"<<endl;
        }
        s.erase(10);

    return 0;
}
تنفيذ البرنامج :


مثال عن ال Map :

#include<iostream>
#include<map>
using namespace std;
int main()
{
    map<string,int> m;
    m["hello"]=1;
    m["world"]=2;
    if(m.find("RBCs")==m.end())
    {
        cout<<"NOT FOUND"<<endl;
    }
    else
    {
        cout<<"FOUND"<<endl;
    }
    map<string,int>::iterator itr = m.begin();
    while(itr!=m.end())
    {
        pair<string,int>p=(*itr);
        cout<<p.first<<" "<<p.second<<endl;
        itr++;
    }
    return 0;
}

تنفيذ البرنامج :




لمعلومات أكثر عن Set  من هنا
لمعلومات أكثر عن  Mapمن هنا
Data Structure & STL (Part 4) Data Structure & STL (Part 4) بواسطة habeeb on 12:08:00 Rating: 5

No comments

مدون محترف