![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| boriska |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 7.12.2006 Где: kharkov Репутация: нет Всего: нет |
задание в Lippman'e
Путаюсь в догадках Помогити, аргументируя please. |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
По мне, так когда ответ находишь сам, то всё же приятнее и пользы больше. Лучше прочти главу ещё раз, а если и тогда не догадаешься, то приходи - расскажем;) |
|||
|
||||
| boriska |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 7.12.2006 Где: kharkov Репутация: нет Всего: нет |
предположения конечно имеются :
а) массив 1. потому что знаем размер 2. с набором будем работать локально б) vector не известно кол-во счетов и можно использовать vector::push_back() в) динамический массив 1. знаем размер 2. удобно передать указатель но не уверен ... |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
boriska, ты получаешь приз за правильный ответ
|
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
||||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
почему? std::vector<myType> v (elem_size)... да и vector::reserve никто не отменял -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
помещение в вектор ф-ия значит уже медленнее, а также вся манипуляция идет через высокоуровненвые механизмы это опять же временные затраты.
да и если бы вектор был действительно лучшим по всем параметром, он бы давно стал заменой new\delete а этого не происходит..
дополнительные усилия |
|||
|
||||
| apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 9 Всего: 23 |
vector классный массив он лучше чем array В языке высокого уровня
Python массивы имеют примерно такую же природу что vector Вернее строка там есть список, и типов нет или есть, скорость конечно это аргуметнт , но что уж при нынешних скоростях этот параноидальный скоростной погоня за скорост Это сообщение отредактировал(а) apook - 21.4.2007, 17:54 -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
| archimed7592 |
|
||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
скажем так: чем по (трудо-, время-)затратам отличаются записи v[i] и a[i], если v - vector, a - массив, созданный при помощи new.
конечно... когда используют new, размер массива не указывают - он сам догадывается... ну и в итоге... vector и ещё раз vector! -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||
|
|||||
| vinter |
|
||||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
неа, но мы получаем что vминус new только в операции удаления, а это уже не смертельно
я не знаю как реализован этот оператор, поэтому про него ниче не скажу, а вот push будет раьотать полюбому медленнее. |
||||
|
|||||
| archimed7592 |
|
||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
а кто заставляет использовать push, если в нём нет нужды (объём массива заранее известен)?
точнее, ты сейчас сказал, что для вектора усилий нужно меньше (не нужно напрягаться об удалении) -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||
|
|||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
результат new\delete - 1572 результат вектора - 26432, думая дальнейший спор не уместен, а преимущество более чем в 10 раз, само за себя говорит. компилилось в VS2003, дебаг |
|||
|
||||
| nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 19 Всего: 181 |
Хм, а у меня (gcc 4.1.2) результаты:
вектор: 3750 без оптимизации, 630 с -O2 new/delete: 1000 без оптимизации, 450 с -О2 Получается верктор только в 1,4 раза медленее, имхо если не нужно выжимать последние миллисекунды - самое то. -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
если release то 1400 и 700, но все равно разница ощутима. и это хороший аргумент в пользу new
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |