fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. // تعريف اختصار للنوع long long
  5. #define ll long long
  6.  
  7. int main() {
  8. int n = 5;
  9.  
  10. // إنشاؤ vectors بأحجام مختلفة وقيم ابتدائية مختلفة:
  11.  
  12. vector<int> v; // vector فارغ من نوع int
  13. vector<int> v1(n); // vector بحجم n، جميع العناصر مهيأة للـ 0
  14. vector<int> v2(n, -1); // vector بحجم n، جميع العناصر مهيأة إلى -1
  15. vector<int> v3 = {1, 2, 3, 4}; // vector مع عناصر معينة
  16.  
  17. // الوصول إلى عناصر v3 بطرق مختلفة:
  18. cout << v3[0] << endl; // الوصول لمباشر (1)
  19. cout << v3.at(0) << endl;
  20.  
  21. cout << v3.front() << endl; // أول عنصر (1)
  22. cout << v3.back() << endl; // آخر عنصر (4)
  23.  
  24. // قراءة قيم لـ v1 من المستخدم
  25. for (int i = 0; i < n; i++) {
  26. cin >> v1[i];
  27. }
  28.  
  29. // قراءة قيم من المستخدم وحفظها في نهاية v2 باستخدام push_back
  30. for (int i = 0; i < n; i++) {
  31. int x;
  32. cin >> x;
  33. v2.push_back(x); // يمكن استخدام emplace_back أيضاً
  34. }
  35.  
  36. // إضافة عنصر ثابت 5 لنهاية v2
  37. v2.push_back(5);
  38.  
  39. // طباعة محتويات v2 بعد الإضافة
  40. for (int i = 0; i < (int)v2.size(); i++) {
  41. cout << v2[i] << ' ';
  42. }
  43. cout << endl;
  44.  
  45. // حذف آخر عنصر من v2
  46. v2.pop_back();
  47.  
  48. // طباعة محتويات v2 بعد الحذف
  49. for (int i = 0; i < (int)v2.size(); i++) {
  50. cout << v2[i] << ' ';
  51. }
  52. cout << endl;
  53.  
  54. // تغيير حجم v1 إلى 2*n (عناصر إضافية ستكون قيمها غير مهيأة بصفة صريحة)
  55. v1.resize(2 * n);
  56.  
  57. // تعيين جميع عناصر v1 إلى القيمة 5 مع حجم 2*n
  58. // هذا يعيد تعيين حجم v1 ويملأه بالقيمة 5
  59. v1.assign(2 * n, 5);
  60.  
  61. // طباعة محتويات v3 باستخدام حلقة for-each (range-based for)
  62. for (auto el : v3)
  63. cout << el << endl;
  64.  
  65. // طباعة محتويات v3 باستخدام المكررات (iterators)
  66. for (auto it = v3.begin(); it != v3.end(); it++)
  67. cout << *it << endl;
  68.  
  69. // فرز عناصر v3 بترتيب تصاعدي
  70. sort(v3.begin(), v3.end());
  71.  
  72. // تعريف واستخدام أزواج (pair)
  73.  
  74. pair<int, int> point; // زوج فارغ (يحتوي على قيم مهيأة بشكل غير محدد)
  75. pair<int, int> point1(1, 2); // زوج مهيأ بقيم (1, 2)
  76. pair<int, string> point2 = {3, "three"}; // زوج يحتوي على int و string
  77.  
  78. // طباعة محتويات الزوج point2
  79. cout << point2.first << ' ' << point2.second << endl; // 3 three
  80.  
  81. // تحديث قيم الزوج بطريقتين:
  82. point2 = {2, "two"}; // تعيين كامل جديد
  83. point2.first = 1; // تعيين العنصر الأول
  84. point2.second = "one"; // تعيين العنصر الثاني
  85.  
  86. // (خطأ) محاولة تعيين int إلى عنصر من نوع string، لن يقبلها المترجم!
  87. // point2.second = 4;
  88.  
  89. return 0;
  90. }
  91.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
1
1
1
4
-1 -1 -1 -1 -1 5452 5452 5452 5452 5452 5 
-1 -1 -1 -1 -1 5452 5452 5452 5452 5452 
1
2
3
4
1
2
3
4
3 three