بردارها در C++ (بردار )
یکی از انواع آرایه های پویا در سی پلاس پلاس بردار (بردار) است.
بردار (بردار ) — این یک ساختار داده است که قبلاً مدلی از یک آرایه پویا است.
آرایه های معمولی در C++ هیچ توابع و روش خاصی برای کار با آنها ندارند. بردارها در C++ ساختارهای داده ای هستند که حاوی توابع اضافی بیشتری برای کار با عناصر هستند.
ایجاد بردار
#شامل <بردار>
...
int main()
{
// اعلام بردار عدد صحیح v برای 10 عنصر
بردار <int> v(10);
// یکسان با مقادیر اولیه صفر (بردار v1)
بردار <int> v1 (10, 0);
...
بالشتک برداری
روش 1
ما حافظه را برای n -امین تعداد عناصر اختصاص می دهیم و با خواندن آنها از صفحه کلید آنها را پر می کنیم.
intn;
cin>> n
بردار a(n);
برای (int i = 0; i < n; i++)
cin>> a[i];
روش 2
روش دوم زمانی مورد نیاز است که تعداد عناصر ناشناخته باشد. ابتدا یک بردار خالی ایجاد می شود و سپس با استفاده از روش push_back() ، یک عنصر جدید به انتهای بردار اضافه می شود.
intn;
cin>> n
بردارa;
برای (int i = 0; i < n; i++) {
intb;
cin>> ب
a.push_back(b);
}
اندازه برداری
int b = a.size();
|
تکرار کننده ها
یکی از راه های تکرار بر روی عناصر در کانتینرها (ساختارهای داده) تکرار کننده ( تکرارکننده) است code>)، که انواع مختلفی دارند.
Iterator - ساختار داده ای که « نشان می دهد» ; در برخی از عناصر کانتینر، و (برای برخی از کانتینرها) می تواند به عنصر قبلی/بعدی هدایت شود.
بردار از قدرتمندترین - تکرارکننده با دسترسی تصادفی(تکرار کننده دسترسی تصادفی ) استفاده می کند. یک تکرار کننده دسترسی تصادفی می تواند علاوه بر حرکت متوالی به یک عنصر دلخواه از بردار دسترسی داشته باشد.
مزایای تکرار کننده
1) هنگام حذف عناصر و تکرار روی عناصر با استفاده از شاخصها ([] )، باید تعداد عناصر باقیمانده را همیشه پیگیری کنیم تا از بردار فراتر نرویم و با استفاده از یک تکرارکننده، شما می توانید از end()< /code> برای نشان دادن پایان بردار استفاده کنید.
2) با استفاده از یک تکرار کننده، می توانید به راحتی عناصر را به صورت پویا حذف و در یک بردار درج کنید.
اعلامیه تکرار کننده
1) اعلام یک تکرار کننده برای یک بردار عدد صحیح و نشان دادن آن به عنصر اولین در بردار.
بردار <int> myvector = { 1, 2, 3, 4, 5 };
بردار <int>::iterator it = myvector.begin();
2) اعلام تکرارگر برای یک بردار عدد صحیح و نشان دادن آن به عنصر بعد از آخرین در بردار.
بردار <int> myvector = { 1, 2, 3, 4, 5 };
بردار <int>::iterator it = myvector.end(); // به عنصر بعد از آخرین مورد اشاره می کند،
بردار <int>::iterator it1 = myvector.end() - 1 ; // اشاره به آخرین عنصر.
دریافت و نمایش یک مقدار
دریافت و نمایش عنصر اشاره شده توسط تکرار کننده.
cout << *it;
انتقال موقعیت تکرارکننده
موقعیت تکرار کننده را 3 موقعیت به جلو حرکت دهید.
<پیش>
advance(it, 3);
ایجاد یک تکرار کننده جدید از یک تکرار کننده موجود
یک تکرار کننده جدید بر اساس یک موجود، ایجاد کنید و 3 موقعیت را ارتقا دهید.
auto it1 = next(it, 3);
نمایش مقادیر برداری با استفاده از تکرار کننده
بردار<int>::iterator it;
for (it = myvector.begin(); it != myvector.end(); ++it) {
cout<<*آن<<" ";
}
پیمایش برداری
برای پیمایش بردار از آخرین عنصر به اولین عنصر، از یک تکرار کننده معکوس reverse_iterator استفاده می شود که با این روش به دست می آید:
1) rbegin() - یک تکرار کننده معکوس نشان می دهد که به آخرین عنصر بردار اشاره می کند، استفاده از عملیات ++ منجر به انتقال به عنصر قبلی می شود؛
2) rend() - یک تکرار کننده معکوس را برمی گرداند که به عنصر قبلی بردار اشاره می کند، استفاده از عملیات ++ منجر به انتقال می شود بعدی.
vector<int>::reverse_iterator it = myvector.rbegin(); // به آخرین عنصر اشاره می کند
vector<int>::reverse_iterator it = myvector.rend(); // به یک عنصر اشاره می کند،
// که قبل از اولین می آید،
|