РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
661 of 815 menu

Функция exchange

Функция exchange заменяет значение объекта на новое и возвращает предыдущее значение этого объекта. В первый параметр мы передаем объект, значение которого нужно заменить, а во второй - новое значение, которое следует установить. Функция объявлена в заголовочном файле <utility> и часто используется для реализации идиомы перемещения и обмена.

Синтаксис

std::exchange(obj, new_value)

Пример

Давайте заменим значение переменной a на число 10 и выведем старое значение, которое вернула функция:

#include <iostream> #include <utility> using namespace std; int main() { int a = 5; int old = exchange(a, 10); cout << "old: " << old << endl; cout << "a: " << a << endl; return 0; }

Результат выполнения кода:

"old: 5" "a: 10"

Пример

Давайте обменяем значения двух строк, используя функцию exchange и временную переменную:

#include <iostream> #include <string> #include <utility> using namespace std; int main() { string s1 = "abcde"; string s2 = "12345"; string temp = exchange(s1, s2); s2 = exchange(temp, s1); cout << "s1: " << s1 << endl; cout << "s2: " << s2 << endl; return 0; }

Результат выполнения кода:

"s1: 12345" "s2: abcde"

Пример

Давайте сбросим значение переменной b в нуль и получим её прежнее значение:

#include <iostream> #include <utility> using namespace std; int main() { int b = 42; int res = exchange(b, 0); cout << "res: " << res << endl; cout << "b: " << b << endl; return 0; }

Результат выполнения кода:

"res: 42" "b: 0"

Смотрите также

  • функция swap,
    которая обменивает значения двух объектов
  • функция move,
    которая выполняет перемещение объекта
  • функция forward,
    которая выполняет идеальную переадресацию
  • концепция RAII,
    которая управляет ресурсами через объекты
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить