مسیر
/
C++
C++
/
برنامه‌ی درسی
/
آرایه و بردار
آر

آرایه و بردار در C++

3 تمرین

درباره‌ی آرایه و بردار

آرایه و بردار

زبان C++ ظرف‌های مختلفی را برای ذخیره‌ی عناصر هم‌نوع به‌صورت مرتب در اختیار شما می‌گذارد. std::array برای ظرف‌هایی با اندازه‌ی ثابت است و std::vector هم قابلیت تغییر اندازه به‌صورت پویا را دارد.

ساخت

وقتی یک آرایه یا بردار اعلان می‌کنید، باید نوع عناصری را که آن ظرف نگه می‌دارد مشخص کنید. آرایه‌ها به اندازه هم نیاز دارند. به این مثال‌ها نگاه کنید تا نحوه‌ی مقداردهی اولیه‌ی این دو نوع ظرف را ببینید:

#include <array>
#include <string>

// std::array<element_type, size> variable_name {list of elements}
std::array<std::string, 3> indie_rock {"yeah", "yeah", "yeah"};
// indie_rock contains the elements "yeah" three times

بردارها معمولاً به فضای بیشتری نیاز دارند، چون برای رشدهای بعدی حافظه اختصاص می‌دهند. لازم نیست اندازه را مشخص کنید:

#include <vector>

// std::vector<element_type> variable_name {list of elements}
std::vector<int> countdown {3, 2, 1};
// my_vector contains the elements 3, 2 and 1

نکته: هنوز لازم نیست سازوکار دقیق مفهوم «قالب» را بدانید؛ این مفهوم در ادامه‌ی درخت برنامه‌ی درسی، صفحه‌ی مخصوص خودش را خواهد داشت.

دسترسی به عناصر

بردارها و آرایه‌ها برای دسترسی به عناصرشان از توابع یکسانی استفاده می‌کنند. می‌توانید با توابع عضو front و back اولین و آخرین عنصر ظرف را به دست آورید. برای دسترسی به عناصر مشخص هم at و عملگر [] وجود دارند.

countdown[0];
// => 3
countdown.at(2);
// => 1
countdown[1] = 4;
// countdown now contains 3, 4 and 1
indie_rock.back() = "yeahs";
// indie_rock is now "yeah", "yeah", "yeahs"

نکته: اگر موقعیتی را انتخاب کنید که در محدوده‌ی ظرف شما نباشد، [] ممکن است به رفتار تعریف‌نشده منجر شود. تابع at یک استثنا ایجاد می‌کند که در بلندمدت می‌تواند کارتان را راحت‌تر کند.

تغییردهنده‌های بردار

چون vector اندازه‌ی ثابتی ندارد، می‌توان عناصر را به آن اضافه یا از آن حذف کرد. دو تابع رایج برای این کار emplace_back و pop_back هستند.

std::vector<std::string> witches {"Holly", "Alyssa", "Shannen"};
witches.pop_back();
// Shannen is no longer with the witches
witches.emplace_back("Rose");
// Rose has joined the team

ظرفیت

می‌توانید با تابع عضو empty خالی بودن ظرف را بررسی کنید. اگر می‌خواهید تعداد عناصر را بدانید، می‌توانید از size استفاده کنید.

ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

آرایه و بردار را یاد بگیرید

تمرین کردن قفل شده است

برای تمرین آرایه و بردار قفل 4 تمرین دیگر را باز کنید