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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.72
xmisserx
1 / 1 / 0
Регистрация: 09.11.2009
Сообщений: 44
#1

Перемешать элементы vector-а - C++

10.12.2009, 23:51. Просмотров 2365. Ответов 4
Метки нет (Все метки)

доброго времени суток
имеются три std::vector с одинаковыми количествами элементов. хотелось бы перемешать элементы так, чтобы перемешанные элементы были одинаковы во всех векторах. как понимаю - если даже есть такое свойство у vector, то вряд ли его можно применить одинаково сразу к трем векторам. Как лучше такое реализовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2009, 23:51     Перемешать элементы vector-а
Посмотрите здесь:

Рандомно перемешать элементы одномерного массива - C++
Необходимо написать программу которая будет перемешывать рандомно елементы массива. Размерность массива равна 10( ввод с клавиатуры).

Рандомно перемешать элементы двумерного массива - C++
Необходимо написать программу которая будет перемешывать рандомно елементы двумерного массива. Размерность массива 5 на 5. Елементы массива...

Скопировать элементы Vector в обычный массив - C++
Вобщем есть поля класса * arr // массив size // размер массива max_size //максимальный размер массива vector <Model> lst; ...

Заменить все максимальные элементы нулями (используя vector) - C++
Дана последовательность чисел. Заменить все максимальные элементы нулями. Вот в этой теме я нашла решение =>...

Вывести все элементы массива vector, перегрузка ostream - C++
Здравствуйте, вот проблема элементарная, а решить что-то сил уже нет. В программе ввожу некие значения, потом ввожу переменную h,...

List и Vector, создать массив списков и перебрать все элементы - C++
Как с помощью List и Vector создать массив списков, и пробежаться в нем по всем элементам?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,190
Завершенные тесты: 1
11.12.2009, 00:13     Перемешать элементы vector-а #2
Есть random_shuffle, функцию генерации случайных чисел можно задать самому. Если эта функция будет на основе rand, то просто надо вызывать перед всеми тремя перемешиваниями srand с одним и тем же значением - тогда будет одна и та же последовательность каждый раз.
xmisserx
1 / 1 / 0
Регистрация: 09.11.2009
Сообщений: 44
11.12.2009, 10:41  [ТС]     Перемешать элементы vector-а #3
да, вроде то что надо. спасибо
вот только немножко не допонял как одинаково применять к нескольким объектам (из примера по ссылке)
C++
1
2
3
4
5
ptrdiff_t myrandom (ptrdiff_t i) { return rand()%i;}
ptrdiff_t (*p_myrandom)(ptrdiff_t) = myrandom;
.....
random_shuffle ( a.begin(), a.end(), p_myrandom);
random_shuffle ( b.begin(), b.end(), p_myrandom);
какого типа использовать переменную p_myrandom?..
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,190
Завершенные тесты: 1
11.12.2009, 21:15     Перемешать элементы vector-а #4
Цитата Сообщение от xmisserx Посмотреть сообщение
вот только немножко не допонял как одинаково применять к нескольким объектам (из примера по ссылке)
Код
unsigned int seed = time(0);
srand(seed);
random_shuffle....
srand(seed); // От того же seed'а
random_shuffle....
Цитата Сообщение от xmisserx Посмотреть сообщение
какого типа использовать переменную p_myrandom?..
В смысле? Здесь же вроде написан тип - ptrdiff_t (*)(ptrdiff_t).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2009, 23:24     Перемешать элементы vector-а
Еще ссылки по теме:

Меняют ли элементы в vector свои адреса при вызове метода push_back? - C++
Допустим я определил вектор и указатель на один из его элементов: vector< int > v( 10 ); int* p = &(v); Затем использую push_back ...

Что значит отобразить преобразованные элементы по восемь слов на строку? Vector - C++
Здравствуйте. Пытаюсь перевести символы вектора(каждого элемента) в верхний регистр(может неправильный способ). Почему оператор вывода...

При использовании push_back для vector-а, все предыдущие элементы перезаписываются - C++
Доброго времени суток,хочу поместить в вектор пути к файлам в определенной директории. Но когда отлажываю программу то вижу что все...

Есть ли готовая команда, чтобы циклически сдвинуть элементы в std::vector? - C++
Типа было (1,2,3) -> (3,1,2).

Переписать в другой vector элементы, значения которых находится в заданном промежутке - C++
Дана последовательность действительных чисел. Необходимо сформировать новую последовательность по некоторому правилу. Для представления...

Как обращаться к vector<vector>? - C++
добрый день не подскажите, как обращаться к такой структуре: vector&lt;vector&lt;pair&lt;bool, string&gt;&gt;&gt; v; v....


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

Или воспользуйтесь поиском по форуму:
xmisserx
1 / 1 / 0
Регистрация: 09.11.2009
Сообщений: 44
11.12.2009, 23:24  [ТС]     Перемешать элементы vector-а #5
Somebody, спасибо большое, все понял.
Yandex
Объявления
11.12.2009, 23:24     Перемешать элементы vector-а
Ответ Создать тему
Опции темы

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