آشنایی با ساختار داده ها – جامعه dev

ساختار داده چیست؟
ساختار داده به شما امکان می دهد انواع مختلفی از داده ها (به عنوان مثال ، int ، رشته و غیره) را ذخیره و سازماندهی کنید و از این اطلاعات به طور کارآمد استفاده کنید.
در C ++ ، ساختارهای داده STL (کتابخانه استاندارد) می توانند هر نوع داده را ذخیره کنند. نوع داده آن توسط آنچه در داخل وارد می کنید اعلام شده است <>
بشر
به عنوان مثال: vector
بشر
هر ساختار داده STL به شما امکان می دهد از روشهای اندازه () و خالی () استفاده کنید ، که بعداً توضیح داده شد.
این نت شامل آرایه ها ، آرایه های پویا ، تکرار ، پشته ، صف ، مجموعه ، نقشه و جفت است.
آرایه
آرایه نوع خاصی از نوع داده است که به کاربران امکان می دهد مقادیر مختلفی را از نوع داده مشابه در داخل ذخیره کنند.
یک کلاس وجود دارد array
در STL ، به سادگی مانند این اعلام شده است:
array<int, 20> a;
آرایه های پویا
یک آرایه پویا نوع خاصی از آرایه است که “پویا” است. این بدان معنی است که اندازه آرایه پویا قابل اصلاح است
روش های مختلفی برای اعلام یک آرایه پویا (بردار ، متداول ترین مورد استفاده) در زیر وجود دارد.
vector<int> v(n); //creates a vector "v" with the size of n, all values initialized to 0
vector<int> v; //another way, same as above
v.resize(n);
vector<int> v = {1,2,3} //creates a vector with three elements 1,2,3 with size of 3
vector<int> v(5,1) //creates a vector size of 5, with all elements value initialized 1
تکرار کننده
تکرار کننده ها نشانگرهایی هستند که به یک عنصر در یک ساختار داده اشاره می کنند.
تکرارهای بردار
تکرار کننده های بردار اغلب برای تعریف دامنه یک ساختار داده استفاده می شوند. دو تکرار مفید هستند v.begin()
که به عنصر اول اشاره می کند ، و v.end()
اشاره به سمت یک موقعیت پس از آخرین عنصر به عنوان مثال:
vector<int> v = {4,3,2,1};
sort(v.begin(),v.end());
for(int i=v.begin();i!=v.end();++i) cout<<*i<<" ";
//or for(auto i : v) cout<
//or for(vector::iterator i = v.begin();i!=v.end();++i) cout<<*i<<" ";
//output: 1 2 3 4
تکرارها را تنظیم کنید
تکرارهای یک مجموعه اغلب برای دسترسی به عناصر در یک مجموعه استفاده می شوند.
تنظیم: ظرفی که ذخیره می کند مرتب لیست بی نظیر اعداد به عنوان مثال:
set<int> s={1,2,5,5,2};
for(auto i = s.begin();i!=s.end();++i) cout<<*i<<" ";
//output: 1 2 5
//or: for(auto i : s) cout<
//same output
اقدامات مشترک (بردار)
vector<int> v(5);
v.push_back(2); //v={0,0,0,0,0,2} appends 2 to the end of the vector
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3); //v={1,2,3} the vector automatically resizes itself
v.erase(v.end()-1) //v={1,2}
v[0] = 3; //v={3,2}