![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
как разделить std::list на N равных частей?
а конкретней list<pair<vector<data1>,data2>> надо разделить на N равных частей и записать в vector<list<pair<vector<data1>,data2>>> |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
а в чем проблема то ? в том что равные не всегда получается ? так это и не всегда возможно.. или в том как сделать одной функцией ? так таких стандартных алгоритмов нет, нужно самому в цикле по каждому кусочку переносить..
|
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Псевдокод
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
"копипаст" заполнения.. так еще и в "разнотипных" циклах.. любите Вы однако опасные игры ![]() Это сообщение отредактировал(а) mes - 21.9.2011, 15:43 |
|||
|
||||
newbee |
|
||||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
Нашла в загашнике)
Добавлено @ 16:15 Вызывать судя по всему так: split(someList,amountOfPieces); Добавлено @ 16:25
И сразу патч для защиты от бестолкового пользователя кода. Это сообщение отредактировал(а) newbee - 21.9.2011, 16:26 -------------------- You're face to face With man who sold the world |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
а если обойтись только целочисленными типами ? Добавлено @ 16:48 сразу видно newbee писалa, рекурсия в деле ![]() Это сообщение отредактировал(а) mes - 21.9.2011, 16:59 |
|||
|
||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
Тот патч закрывает возможность зациклить выполнение функции, когда аргумент split/size станет равным нулю. А если ты имеешь ввиду использовать целочисленное деление вместо округления... Я не помню, там вроде как-то криво список резался. Не стесняйся, присылай правильный патч с целыми числами)
Добавлено через 2 минуты и 41 секунду ![]() -------------------- You're face to face With man who sold the world |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 4 Всего: 19 |
mkey. Тогда вот вариант интерфейсной функции. Стало намного проще, а cmath выпал из зависимостей )
Добавлено через 44 секунды И никакого дублирования кода с непонятными циклами))) -------------------- You're face to face With man who sold the world |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
Это сообщение отредактировал(а) maxim1000 - 21.9.2011, 22:24 -------------------- qqq |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
или, если разброс элементов нежелателен, заменить взятие остатка делением на кол-во элементов в группе (формула приведена выше).. Это сообщение отредактировал(а) mes - 21.9.2011, 23:30 |
|||
|
||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Еще вариант
Исходный список после операции, соответственно опустошается. В памяти элементы остаются на местах, т.е. не копируются вообще. Добавлено @ 01:34 Вызывать примерно так:
Это сообщение отредактировал(а) volatile - 22.9.2011, 01:37 |
||||
|
|||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
вот хорошо коротко красиво.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |