reverse() ב-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  

תחביר של reverse()

הפונקציה reverse() מוגדרת ב- קובץ כותרת.

לַהֲפוֹך (ראשון אחרון);

פרמטרים:

  • רֵאשִׁית : איטרטור לאלמנט הראשון בטווח.
  • אַחֲרוֹן : איטרטור לאלמנט התיאורטי מיד אחרי האלמנט האחרון בטווח.

ערך החזרה:

  • פונקציה זו אינה מחזירה שום ערך. זה הופך את הטווח במקום.

דוגמאות

היפוך מערך

הדוגמאות שלהלן מראות כיצד להשתמש בפונקציה reverse() כדי להפוך מגוון של מיכלי נתונים.

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 

שמאלה סובב וקטור באמצעות reverse()

ה סיבוב שמאלה של וקטור ניתן לעשות באמצעות reverse() שלוש פעמים עליו.

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  
צור חידון