عكس () في C++ STL
في C++ ال يعكس() هي وظيفة مدمجة تستخدم لعكس ترتيب العناصر في نطاق معين من العناصر. يمكن أن يكون هذا النطاق أي حاوية STL مثل المتجه أو يمكن أن يكون مصفوفة.
C++ #include using namespace std ; int main () { vector < int > v = { 1 2 3 4 5 }; // Reversing the vector reverse ( v . begin () v . end ()); for ( int i : v ) cout < < i < < ' ' ; return 0 ; }
الإخراج
5 4 3 2 1
بناء الجملة العكسي ()
يتم تعريف الدالة العكسية () في ملف
يعكس (الأول والأخير)؛
حدود:
- أولاً : مكرر للعنصر الأول في النطاق.
- آخر : مكرر للعنصر النظري مباشرة بعد العنصر الأخير في النطاق.
قيمة الإرجاع:
- هذه الدالة لا ترجع أي قيمة. إنه يعكس النطاق في مكانه.
أمثلة
عكس مصفوفة
توضح الأمثلة أدناه كيفية استخدام الدالة العكسية () لعكس مجموعة متنوعة من حاويات البيانات.
C++ #include using namespace std ; int main () { int arr [] = { 1 2 3 4 5 }; int n = sizeof ( arr ) / sizeof ( arr [ 0 ]); // Reverse the array arr reverse ( arr arr + n ); for ( int i : arr ) cout < < i < < ' ' ; return 0 ; }
الإخراج
5 4 3 2 1
عكس سلسلة
C++ #include using namespace std ; int main () { string s = 'abcd' ; // Reverse the string s reverse ( s . begin () s . end ()); cout < < s ; return 0 ; }
الإخراج
dcba
تدوير المتجه لليسار باستخدام الاتجاه العكسي ()
ال الدوران الأيسر للمتجه يمكن القيام بذلك باستخدام عكس () ثلاث مرات عليه.
C++ #include using namespace std ; int main () { vector < int > v = { 1 3 6 2 9 }; int n = v . size (); int d = 2 ; // Left rotate the vector by d place reverse ( v . begin () v . begin () + d ); reverse ( v . begin () + d v . end ()); reverse ( v . begin () v . end ()); for ( auto i : v ) cout < < i < < ' ' ; return 0 ; }
الإخراج
6 2 9 1 3إنشاء اختبار