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) |
مثال عن ال 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;
}
تنفيذ البرنامج :
Data Structure & STL (Part 4)
بواسطة habeeb
on
12:08:00
Rating:
No comments