Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Mr_malysh
0 / 0 / 1
Регистрация: 03.04.2012
Сообщений: 24
#1

Переставить местами строки в масиве - C++

04.04.2013, 10:55. Просмотров 309. Ответов 1
Метки нет (Все метки)

Пусть, например, у нас есть структура

C++
1
2
3
Struct ABC{
char b[25];
};
и массив
C++
1
ABC Mas[10]

Как поменять элементы этого массива местами?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2013, 10:55
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Переставить местами строки в масиве (C++):

В масиве А поменять местами первую и последнюю ,вторую и предпоследнюю строки и т.д
Помогите найти ошибку,почему не меняет Вот мой простенький код #include...

Переставить местами строки
Как в масиве строк поменять, например, первую и вторую строку местами?

Переставить местами строки матрицы.
БИЛЕТ №21 3. Дана целочисленная квадратная матрица. Переставьте местами...

Переставить местами ni и nj строки массива A
Задание.Дан числовой массив А, состоящий из n строк и m столбцов. Переставить...

Квадратная матрица, переставить строки местами
Задана вещественная квадратная матрица(вводится с клавиатуры). Переставить...

Дана квадратная таблица a[1:n,1:n]. Переставить местами строки 1 и 2, 3 и 4 и т.д
4 Дана квадратная таблица a. Переставить местами строки 1 и 2, 3 и 4 и т.д....

1
Tulosba
:)
Эксперт С++
4746 / 3240 / 496
Регистрация: 19.02.2013
Сообщений: 9,046
04.04.2013, 12:52 #2
Цитата Сообщение от Mr_malysh Посмотреть сообщение
Как поменять элементы этого массива местами?
Правильным вариантом будет реализация оператора присваивания (operator=) для ABC, и дальнейшее использование std::swap. Но можно по-тупому (меняем i и j элементы):
C++
1
2
3
4
ABC tmp;
memcpy( &tmp, &Mas[i], sizeof(ABC) );
memcpy( &Mas[i], &Mas[j], sizeof(ABC) );
memcpy( &Mas[j], &tmp, sizeof(ABC) );
Добавлено через 59 минут
P.S. Что-то я протупил На самом деле если член класса (структуры) является массивом, то версия оператора присваивания, сгенерированного компилятором выполнит поэлементное копирование массива.
Т.е. можно было обойтись более простым вариантом:
C++
1
2
3
ABC tmp = Mas[i];
Mas[i] = Mas[j];
Mas[j] = tmp;
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2013, 12:52
Привет! Вот еще темы с решениями:

Переставить местами строки с наименьшей и наибольшей суммами элементов
Задача. Переставить местами строки с наименьшей и наибольшей суммами элементов....

Строки (В строке переставить местами рядом стоящие слова)
Задача: В строке переставить местами рядом стоящие слова. Помогите сделать...

Переставить местами строки с четными и нечетными номерами в матрице
В общем суть такова, надо ввести 2 матрицы 4*4,и найти кол-во элементов больших...

Переставить местами первый и последний строки прямоугольной таблицы (матрицы)
Переставить местами первый и последний строки прямоугольной таблицы (матрицы)


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru