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

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

Восстановить пароль Регистрация
 
Mr_malysh
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 24
04.04.2013, 10:55     Переставить местами строки в масиве #1
Пусть, например, у нас есть структура

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

Как поменять элементы этого массива местами?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2013, 10:55     Переставить местами строки в масиве
Посмотрите здесь:

C++ Дана квадратная таблица a[1:n,1:n]. Переставить местами строки 1 и 2, 3 и 4 и т.д
C++ Переставить местами ni и nj строки массива A
C++ Переставить местами строки матрицы.
Переставить местами строки C++
C++ Переставить местами строки с наименьшей и наибольшей суммами элементов
C++ Квадратная матрица, переставить строки местами
Строки (В строке переставить местами рядом стоящие слова) C++
В масиве А поменять местами первую и последнюю ,вторую и предпоследнюю строки и т.д C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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;
Yandex
Объявления
04.04.2013, 12:52     Переставить местами строки в масиве
Ответ Создать тему
Опции темы

Текущее время: 15:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru