Форум программистов, компьютерный форум CyberForum.ru

"Ругается" на оперетор побитового исключения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти наиболее и наименее удаленные точки в массиве http://www.cyberforum.ru/cpp-beginners/thread894943.html
как найти наиболее и наименее удаленные точки в массиве
C++ Расшифровать (*sk()[4] Расшифровать (*sk()) Кто может подсказать?) http://www.cyberforum.ru/cpp-beginners/thread894935.html
Имеется частичное непонимание кода C++
Задание:прочитать из файла строку символов.В данной строке каждый символ ? удвоить.Каждый символ ,стоящий перед !, заменить символом введенным с клавиатуры.Новую строку не создавать.Вывести исходную и преобразованную строки. Имеется вот такой код.Некоторые моменты не понятны или есть ощущение,что не правильно их понял.Кому не трудно и интересно,оставьте,пожалуйста,подробные комментарии....
N последовательных членов Фибоначчи. С++ C++
Найти первые N членов Фибоначчи с помощью рекурсии и вывести их на экран. Тут и тут есть нахождение четного и n-го члена последовательности Фибоначчи. Помогите вывести N первых членов последовательности с помощью рекурсии.
C++ Не изменяется элемент вектора при работе с ним по указателю http://www.cyberforum.ru/cpp-beginners/thread894890.html
Здравствуйте. Проблема следующая. Пишу свою велосипедную (на это, как на источник проблемы, не указывать) реализацию бинарного дерева для своего не менее велосипедного архиватора, использующего алгоритм Хаффмана. Составление нового кода для каждого символа происходит в отдельной функции, которая в качестве аргумента принимает указатель на структуру соответствующего символа. Структуры хранятся в...
C++ Функции работы с процессами, как осуществить возвражение результата? Например void main () { int res; /* запуск exe-шника , ниже*/ } дочерний подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.06.2013, 10:48     "Ругается" на оперетор побитового исключения
Цитата Сообщение от Harutyunyan Посмотреть сообщение
Мне просто на собесодовании среди задач попалась и такая, надо поменять значение 2-х переменных не используя дополнительной.

Я сделал только для типа int, теперь хотел бы узнать, каким образом можно сделать для любых типов.

Хоть это число, строка или даже объект.
В качестве ответа на вопрос из собеседования это окей. Для чисел есть ещё вариант со сложением и вычитанием, например. Для любых типов, боюсь, так просто не получится. В принципе можно написать функцию, которая будет трактовать любой объект как последовательность байтиков определённой длины и обменивать местами байтики. Но это работает только для так называемых POD-типов — фактически, структурок Си. Объекты Си++ могут иметь определённые свойства, которые они возможно хотели бы сохранить, поэтому их нельзя просто так перемещать в памяти. Для этого нужен некоторый контракт. Вы можете или сами потребовать у объектов определять метод swap(), или же воспользоваться контрактами языка: конструкторами копирования, перемещения, операторами присваивания и т. п.

Цитата Сообщение от Kastaneda Посмотреть сообщение
Я своими глазами видел, как компилятор из кода сделал одну (!!!) ассемблерную инструкцию, которая меняет местами значения своих аргументов. Т.е. компилятор понял, что происходит в этом коде и предложил свой лучший вариант (даже лучше ксоров).
А если обе переменные в момет обмена находятся в регистрах, то инструкций не надо вообще: просто дальше считаем, что переменная A в регистре, в котором была переменная B, и наоборот.
 
Текущее время: 18:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru