تعلم البرمجة بلغة ++C
رفتن به کانال در Telegram
💻 الى كل المبرمجين 🔴سوف تجد شرح لغة السي بلاس بلاس للمبتدئين حتى الاحتراف 📺فيدوهات شرح عديدة 🎥 برامج مجانية 🎁 مشاريع مجانيه 📚 كتب تصميم وبرمجة 📚 مراجع واسئلة محلولة 💻برامج واكواد كثيرة كل ذلك في قناتي 👇 https://t.me/LearnCPlus_Plus
نمایش بیشتر2 318
مشترکین
-124 ساعت
+17 روز
-3230 روز
آرشیو پست ها
في لغة C++
vector
هو هيكل بيانات من مكتبة
STL (Standard Template Library)
يستخدم لتخزين عناصر متتابعة في تسلسل ديناميكي (يمكن تغيير حجمه خلال التشغيل). يمكن استخدام vector كبديل لمصفوفات C++ الثابتة ويوفر العديد من الميزات القوية، مثل تغيير حجم الvector بسهولة وإمكانية إضافة وحذف العناصر.
لإستخدام vector، يجب تضمين المكتبة المناسبة وهي <vector> في الكود. وفيما يلي مثال بسيط يوضح كيفية استخدام vector في C++:
#include <iostream>
#include <vector>
using namespace std;
int main() {
// تعريف vector لتخزين عناصر من نوع int
vector<int> myVector;
// إضافة عناصر إلى الvector
myVector.push_back(10);
myVector.push_back(20);
myVector.push_back(30);
// طباعة العناصر في الvector
for (int i = 0; i < myVector.size(); ++i) {
cout << myVector[i] << " ";
}
return 0;
}
في هذا المثال، تم تعريف vector من نوع int باسم myVector وتم إضافة عناصر إليه باستخدام دالة
push_back()
ومن ثم تم طباعة العناصر باستخدام حلقة for.
توضيح بعض المفاهيم الأساسية لـ vector في C++ بشكل أكثر تفصيلاً:
1. تعريف vector:
- تعريف vector يتم عن طريق تحديد نوع العناصر التي سيحتويها (مثل int, double, string، الخ).
- يتم تعريف vector كهيكل بيانات يمكنه تخزين مجموعة من العناصر المتتابعة.
2. إنشاء vector:
- يمكن إنشاء vector فارغ بتعريفه مثل
vector<int> myVector;
- يمكن أيضا إنشاء vector وتحديد القيم الابتدائية مباشرة مثل
vector<int> myVector = {1, 2, 3};
3. إضافة وحذف العناصر:
- يمكن إضافة عنصر جديد للـ vector باستخدام الدالة push_back()، مثل
myVector.push_back(10);
- يمكن حذف عنصر من الـ vector في نهاية القائمة باستخدام الدالة
myVector. pop_back().
4. الوصول إلى العناصر:
- يمكن الوصول إلى العناصر في vector باستخدام مؤشرات الفهرس، مثل myVector[0] للوصول إلى العنصر الأول.
- يمكن استخدام دوال مثل at() للوصول إلى العناصر بالتحقق من الحدود.
5. الحجم والعمليات:
- يمكن الحصول على عدد العناصر في vector باستخدام دالة
size().
- يمكن تغيير حجم vector باستخدام دالة
resize().
6. ميزات أخرى:
- يمكن عمل نسخة لـ vector بكامل محتواها باستخدام العامل =.
- يمكن اجراء عمليات الترتيب والبحث وتنفيذ الوظائف الأخرى التي تعمل على البيانات المتتابعة.
هذه مجرد نبذة عن العديد من الميزات التي يقدمها vector في C++. يسمح vector للمبرمج بإدارة مجموعات متتابعة من البيانات بشكل فعال وسهل الاستخدام، مما يجعلها هيكل بيانات قوي وشائع في برمجة C++.
(المصفوفات)
1. تعريف مصفوفة:
int arr[5]; // تعريف مصفوفة بحجم 5
2. إسناد قيم لمصفوفة:
int arr[3];
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
3. استخدام مصفوفة في دالة:
int sumArray(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return sum;
}
int main() {
int arr[] = {10, 20, 30, 40, 50};
int size = sizeof(arr) / sizeof(arr[0]);
int result = sumArray(arr, size);
return 0;
}
4. مصفوفة ثنائية الأبعاد:
int matrix[3][3]; // مصفوفة ثنائية الأبعاد 3x3
5. الوصول إلى عنصر في مصفوفة ثنائية الأبعاد:
int matrix[2][2] = {{1, 2}, {3, 4}};
int element = matrix[1][0];
// الصف الثاني العمود الاول
6. حساب ضرب مصفوفتين:
void multiplyMatrices(int mat1[][3], int mat2[][2], int res[][2]) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
res[i][j] = 0;
for (int k = 0; k < 3; k++) {
res[i][j] += mat1[i][k] * mat2[k][j];
}
}
}
}
7. تحويل مصفوفة إلى مصفوفة ثنائية الأبعاد:
int arr[] = {1, 2, 3, 4, 5, 6};
int rows = 2;
int cols = 3;
int matrix[rows][cols];
int index = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
matrix[i][j] = arr[index];
index++;
}
}
8. إيجاد المتوسط في كل صف من مصفوفة ثنائية الأبعاد:
void calculateRowAverages(int matrix[][3], int rows, int cols, double averages[]) {
for (int i = 0; i < rows; i++) {
double sum = 0;
for (int j = 0; j < cols; j++) {
sum += matrix[i][j];
}
averages[i] = sum / cols;
}
}
9. إجراء عملية النقل لمصفوفة:
void transposeMatrix(int matrix[][3], int rows, int cols, int result[][3]) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
result[j][i] = matrix[i][j];
}
}
}
10. طباعة مصفوفة:
void printMatrix(int matrix[][3], int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
}
11. إيجاد المتوسط في كل عمود من مصفوفة ثنائية الأبعاد:
void calculateColumnAverages(int matrix[][3], int rows, int cols, double averages[]) {
for (int j = 0; j < cols; j++) {
double sum = 0;
for (int i = 0; i < rows; i++) {
sum += matrix[i][j]; }
averages[j] = sum / rows;
}
}
12. مصفوفة ثلاثية الأبعاد:
int cube[2][3][4]; // مصفوفة ثلاثية الأبعاد 2x3x4
13. إيجاد أكبر عنصر في مصفوفة:
int findMax(int arr[], int size) {
int max = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int findMaxInMatrix(int matrix[][3], int rows, int cols) {
int max = matrix[0][0];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (matrix[i][j] > max) {
max = matrix[i][j];
}
}
}
return max;
}
14. إجراء عملية الجمع لمصفوفتين:
void addMatrices(int mat1[][3], int mat2[][3], int res[][3]) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
res[i][j] = mat1[i][j] + mat2[i][j];
}
}
}
موقع اختبارات وكوزات للغة سي بلس بلس :-
https://nouvil.net/problem-solving/c-quizzes/
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
