Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 31.01.2021
Сообщений: 27

Что за функция swap

02.03.2021, 19:30. Показов 2389. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, подскажите пожалуйста, вот не первый раз встречаю запись в библиотеках для различных экранчиков
C
1
swap(&y1, &y2);
, аргументы могут быть разными и компилятор выдает в этих местах ошибку, что это за функция ? Когда-то с чем-то похожим сталкивался, когда нужно было одному массиву присвоить значение другого, но и тогда она не заработала....
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.03.2021, 19:30
Ответы с готовыми решениями:

Использование std::swap() вместо friend swap() при реализации Copy&Swap в современном С++
Добрый день! При реализации Copy&Swap традиционно для класса создается дружественная функция swap(), которая используется в перегруженном...

Функция swap
Доброго времени суток! Задался вопросом о реализации алгоритмов обмена двух переменных, но кроме этих ничего другого придумать не...

Функция swap
Всем привет. У меня проблема, при чем проблема не с самими указателями, а с функцией swap. #include <iostream> using namespace...

18
Эксперт .NET
 Аватар для Rius
13164 / 7724 / 1679
Регистрация: 25.05.2015
Сообщений: 23,527
Записей в блоге: 14
02.03.2021, 19:44
C++
1
2
3
auto temp = y1;
y1 = y2;
y2 = temp;
0
0 / 0 / 0
Регистрация: 31.01.2021
Сообщений: 27
02.03.2021, 19:50  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
auto temp = y1;
y1 = y2;
y2 = temp;
Не совсем понимаю, что здесь имелось ввиду, кроме какого-то приравнивания и почему все-таки компилятор ругается на этот swap
0
Эксперт .NET
 Аватар для Rius
13164 / 7724 / 1679
Регистрация: 25.05.2015
Сообщений: 23,527
Записей в блоге: 14
02.03.2021, 19:54
Что это за функция, должно быть понятно даже из её названия.

Ругается, потому что header не подключен. https://en.cppreference.com/w/cpp/algorithm/swap
0
0 / 0 / 0
Регистрация: 31.01.2021
Сообщений: 27
02.03.2021, 20:04  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Что это за функция, должно быть понятно даже из её названия.
По той странице, что вы дали я понял, что переменные меняются значениями, а насчет header , я еще до того как здесь писать прописывал (<iostream>)
0
Эксперт .NET
 Аватар для Rius
13164 / 7724 / 1679
Регистрация: 25.05.2015
Сообщений: 23,527
Записей в блоге: 14
02.03.2021, 20:06
Там по ссылке сказано, какие подключать в какой версии c++. Iostream среди них нет.
0
0 / 0 / 0
Регистрация: 31.01.2021
Сообщений: 27
02.03.2021, 20:13  [ТС]
Если вы об этом
C
1
2
3
4
5
Defined in header <algorithm>
(until C++11)
Defined in header <utility>
(since C++11)
Defined in header <string_view>
перепробовал-не работает
0
Эксперт .NET
 Аватар для Rius
13164 / 7724 / 1679
Регистрация: 25.05.2015
Сообщений: 23,527
Записей в блоге: 14
02.03.2021, 20:22
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <string_view>
 
int main()
{
    int a = 1, b = 2;
    std::cout << "a = " << a << ", b = " << b << std::endl;
    std::swap(a, b);
    std::cout << "a = " << a << ", b = " << b << std::endl;
}
Code
1
2
a = 1, b = 2
a = 2, b = 1
Добавлено через 40 секунд
Если не работает, пишите функцию сами, по месту необходимости. Её очень сложный код я привёл во 2 посте.

Добавлено через 4 минуты
У вас C или C++? И какой именно версии?
0
0 / 0 / 0
Регистрация: 31.01.2021
Сообщений: 27
02.03.2021, 20:29  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
У вас C или C++? И какой именно версии?
Точно С (компилятор Cosmic) насчет версии ХЗ, даже не знаю где посмотреть
0
Эксперт .NET
 Аватар для Rius
13164 / 7724 / 1679
Регистрация: 25.05.2015
Сообщений: 23,527
Записей в блоге: 14
02.03.2021, 20:34
В C такой функции не было.
Пишите сами.

Добавлено через 52 секунды
Цитата Сообщение от mixa_88 Посмотреть сообщение
даже не знаю где посмотреть
Судя по http://www.colecovision.eu/stm8/compilers.shtml , C89 и частично C99. Старьё...
0
0 / 0 / 0
Регистрация: 31.01.2021
Сообщений: 27
02.03.2021, 20:43  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
В C такой функции не было.
Пишите сами.
В таком случае мне не понятно как автор этой библиотеки применял эту функцию, компилятор и среда разработки такие же и он не подключал ничего дополнительно и функции написанной вручную автором я тоже не встретил
0
Эксперт .NET
 Аватар для Rius
13164 / 7724 / 1679
Регистрация: 25.05.2015
Сообщений: 23,527
Записей в блоге: 14
02.03.2021, 20:44
Дайте ссылку на библиотеку, с исходниками.
0
0 / 0 / 0
Регистрация: 31.01.2021
Сообщений: 27
02.03.2021, 20:48  [ТС]
Вот она самая
Вложения
Тип файла: rar tft.rar (5.5 Кб, 6 просмотров)
0
Эксперт .NET
 Аватар для Rius
13164 / 7724 / 1679
Регистрация: 25.05.2015
Сообщений: 23,527
Записей в блоге: 14
02.03.2021, 20:58
Отсюда: http://embedded-lab.com/blog/c... dition/15/ ?
Похоже, в космике всё-таки есть своё.
Можете спросить автора.
Или написать самостоятельно этот сложнейший код.
0
0 / 0 / 0
Регистрация: 31.01.2021
Сообщений: 27
02.03.2021, 21:30  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Отсюда: http://embedded-lab.com/blog/c... dition/15/ ?
Отсюда
0
Эксперт .NET
 Аватар для Rius
13164 / 7724 / 1679
Регистрация: 25.05.2015
Сообщений: 23,527
Записей в блоге: 14
02.03.2021, 21:32
Лучший ответ Сообщение было отмечено mixa_88 как решение

Решение

C
1
2
3
4
5
void swap(int *y1, int *y2) {
  int temp = *y1;
  *y1 = *y2;
  *y2 = temp;
}
1
0 / 0 / 0
Регистрация: 31.01.2021
Сообщений: 27
02.03.2021, 21:42  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
void swap(int *y1, int *y2) {
  int temp = *y1;
  *y1 = *y2;
  *y2 = temp;
}
Только хотел спросить как оформить в виде функции, а то код вроде простой..... была мысль, что нужны указатели, но я в этой теме, к своему стыду плаваю еще

Добавлено через 42 секунды
В любом случае спасибо!!!
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
02.03.2021, 23:36
Цитата Сообщение от Rius Посмотреть сообщение
void swap(int *y1, int *y2) {
ой-ой ) по тонкому льду ходите - код не для начинающих (грозит записью в соседние переменные, т.к. многие не читают то что им пишет компилятор) )

Как по мне, уж лучше что-то типа как автор вот этого вопроса. Но ему предложили решение даже лучше, хотя, наверное, не с точки зрения компилятора - это сложно - перейти от применения `memcpy()` к обмену значений переменных местами.
1
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
03.03.2021, 11:06
Цитата Сообщение от Voland_ Посмотреть сообщение
код не для начинающих
наповал...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.03.2021, 11:06
Помогаю со студенческими работами здесь

Функция swap в си
Всем привет! Да,я знаю как писать функцию свап для интовых или там дабл переменных,но есть ли в си такая возможность написать это для воид...

Функция swap()
А что выгоднее с точке зрения быстродействия - использование стандартной функции или &quot;ручной&quot; обмен через промежуточную...

Функция SWAP
#include &lt;stdio.h&gt; #include &quot;ctype.h&quot; #include &quot;string.h&quot; #include &quot;setjmp.h&quot; #include &quot;stdlib.h&quot; #define DELIMITER 1 #define...

Двусвязный список. Функция swap
Дописать в класс list функцию: swap – поменять содержимое текущего списка с заданным. #pragma once template&lt;class T&gt; ...

Функция swap(t, x, y) в виде макроса
Реализуйте функцию swap(t, x, y) в виде макроса, который осуществляет обмен значениями указанного типа.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru