Advertisement
kutuzzzov

Урок 3-1 Указатели

Dec 7th, 2022
697
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. #include <cassert>
  2. #include <string>
  3. #include <utility>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. // Шаблонная функция Swap обменивает значения двух объектов одного и того же типа,
  9. // указатели на которые она принимает в качестве аргументов
  10. template <typename T>
  11. void Swap(T* value1, T* value2) {
  12.     // Реализуйте тело функции самостоятельно
  13.     swap(*value1, *value2);
  14.     return;
  15. }
  16.  
  17. int main() {
  18.     using namespace std;
  19.  
  20.     {
  21.         int x = 1;
  22.         int y = 5;
  23.  
  24.         Swap(&x, &y);
  25.         assert(x == 5);
  26.         assert(y == 1);
  27.     }
  28.  
  29.     {
  30.         string one = "one"s;
  31.         string two = "two"s;
  32.         Swap(&one, &two);
  33.         assert(one == "two"s);
  34.         assert(two == "one"s);
  35.     }
  36.  
  37.     {
  38.         // Видимость структуры Point ограничена текущим блоком
  39.         struct Point {
  40.             int x, y;
  41.         };
  42.  
  43.         Point p1{1, 2};
  44.         Point p2{3, 4};
  45.  
  46.         Swap(&p1, &p2);
  47.         assert(p1.x == 3 && p1.y == 4);
  48.         assert(p2.x == 1 && p2.y == 2);
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement