fix: converted single to triple backticks5 (#36232)
This commit is contained in:
		| @@ -8,24 +8,25 @@ localeTitle: مسح-إزالة لغة | ||||
|  | ||||
| ### مقارنة | ||||
|  | ||||
|  `// Using a hand-written loop  | ||||
|  std::vector<int> v = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };  | ||||
|  for (auto iter = v.cbegin(); iter < v.cend(); /*iter++*/)  | ||||
|  {  | ||||
|     if (is_odd(*iter))  | ||||
|     {  | ||||
|         iter = v.erase(iter);  | ||||
|     }  | ||||
|     else  | ||||
|     {  | ||||
|         ++iter;  | ||||
|     }  | ||||
|  }  | ||||
|   | ||||
|  // Using the erase–remove idiom  | ||||
|  std::vector<int> v = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };  | ||||
|  v.erase(std::remove_if(v.begin(), v.end(), is_odd), v.end());  | ||||
| `  | ||||
| ```cpp | ||||
| // Using a hand-written loop | ||||
| std::vector<int> v = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; | ||||
| for (auto iter = v.cbegin(); iter < v.cend(); /*iter++*/) | ||||
| { | ||||
|     if (is_odd(*iter)) | ||||
|     { | ||||
|         iter = v.erase(iter); | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         ++iter; | ||||
|     } | ||||
| } | ||||
|  | ||||
| // Using the erase–remove idiom | ||||
| std::vector<int> v = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; | ||||
| v.erase(std::remove_if(v.begin(), v.end(), is_odd), v.end()); | ||||
| ```  | ||||
|  | ||||
| كما ترون ، يتطلب التعليمة البرمجية ذات حلقة مكتوبة يدويًا كتابة أكثر قليلاً ، ولكن لها أيضًا مشكلة في الأداء. يجب أن تقوم كل مكالمة `erase` بتحويل جميع العناصر بعد المحذوفة ، لتجنب "الفجوات" في المجموعة. داعيا `erase` عدة مرات على نفس الحاوية يولد الكثير من النفقات العامة من تحريك العناصر. | ||||
|  | ||||
| @@ -33,51 +34,52 @@ localeTitle: مسح-إزالة لغة | ||||
|  | ||||
| ### مثال | ||||
|  | ||||
|  `#include <vector> // the general-purpose vector container  | ||||
|  #include <iostream> // cout  | ||||
|  #include <algorithm> // remove and remove_if  | ||||
|   | ||||
|  bool is_odd(int i)  | ||||
|  {  | ||||
|     return (i % 2) != 0;  | ||||
|  }  | ||||
|   | ||||
|  void print(const std::vector<int> &vec)  | ||||
|  {  | ||||
|     for (const auto& i : vec)  | ||||
|         std::cout << i << ' ';  | ||||
|     std::cout << std::endl;  | ||||
|  }  | ||||
|   | ||||
|  int main()  | ||||
|  {  | ||||
|     // initializes a vector that holds the numbers from 1-10.  | ||||
|     std::vector<int> v = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };  | ||||
|     print(v);  | ||||
|   | ||||
|     // removes all elements with the value 5  | ||||
|     v.erase(std::remove(v.begin(), v.end(), 5), v.end());  | ||||
|     print(v);  | ||||
|   | ||||
|     // removes all odd numbers  | ||||
|     v.erase(std::remove_if(v.begin(), v.end(), is_odd), v.end());  | ||||
|     print(v);  | ||||
|   | ||||
|     // removes multiples of 4 using lambda  | ||||
|     v.erase(std::remove_if(v.begin(), v.end(), [](int n) { return (n % 4) == 0; }), v.end());  | ||||
|     print(v);  | ||||
|   | ||||
|     return 0;  | ||||
|  }  | ||||
|   | ||||
|  /*  | ||||
|  Output:  | ||||
|  1 2 3 4 5 6 7 8 9 10  | ||||
|  1 2 3 4 6 7 8 9 10  | ||||
|  2 4 6 8 10  | ||||
|  2 6 10  | ||||
|  */  | ||||
| `  | ||||
| ```cpp | ||||
| #include <vector> // the general-purpose vector container | ||||
| #include <iostream> // cout | ||||
| #include <algorithm> // remove and remove_if | ||||
|  | ||||
| bool is_odd(int i) | ||||
| { | ||||
|     return (i % 2) != 0; | ||||
| } | ||||
|  | ||||
| void print(const std::vector<int> &vec) | ||||
| { | ||||
|     for (const auto& i : vec) | ||||
|         std::cout << i << ' '; | ||||
|     std::cout << std::endl; | ||||
| } | ||||
|  | ||||
| int main() | ||||
| { | ||||
|     // initializes a vector that holds the numbers from 1-10. | ||||
|     std::vector<int> v = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; | ||||
|     print(v); | ||||
|  | ||||
|     // removes all elements with the value 5 | ||||
|     v.erase(std::remove(v.begin(), v.end(), 5), v.end()); | ||||
|     print(v); | ||||
|  | ||||
|     // removes all odd numbers | ||||
|     v.erase(std::remove_if(v.begin(), v.end(), is_odd), v.end()); | ||||
|     print(v); | ||||
|  | ||||
|     // removes multiples of 4 using lambda | ||||
|     v.erase(std::remove_if(v.begin(), v.end(), [](int n) { return (n % 4) == 0; }), v.end()); | ||||
|     print(v); | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| /* | ||||
| Output: | ||||
| 1 2 3 4 5 6 7 8 9 10 | ||||
| 1 2 3 4 6 7 8 9 10 | ||||
| 2 4 6 8 10 | ||||
| 2 6 10 | ||||
| */ | ||||
| ```  | ||||
|  | ||||
| ### مصادر | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user