Андрей
С чегой-та я не смогу её использовать???
Каким образом? Массив - непрерывная структура данных.
Anatoly
И?
Андрей
Реши уравнение.
Anatoly
Бля.
Anatoly
1. Как говорится, "каков физический смысл сего уравнения?"
Sergey
я вообще не пойму что за попугаев вы считаете
Sergey
в чем проблема выделять x2 память?
Anatoly
2. Понятие "оптимум" знакомо?
Anatoly
в чем проблема выделять x2 память?
Да вот я сам не пойму, что за танцы.
Square
О точно, а когда успели дотнет грохнуть?
Андрей
Ой, неправильно. x^3 = x + 1. Вот это правильно.
Square
ШТА?
Чят
Андрей
Слева находится количество памяти, которое нам надо выделить. А справа количество памяти, которое мы задействовали на 1 и 2 шагах.
Андрей
Чтобы не было фрагментации памяти.
Anatoly
Ой, неправильно. x^3 = x + 1. Вот это правильно.
Ещё лучше. Первое уравнение было поавильное, но оно ни к селу ни к городу.
Андрей
Блин, 1.5 не подходит. Нужный порог - 1.3247
Андрей
Ещё лучше. Первое уравнение было поавильное, но оно ни к селу ни к городу.
Не правильно. Ты не можешь пересекать элемент с хранящимися данными. Затереть можешь.
Андрей
"Слева" - это x^3, пардон x^2?
Чего? Последнее уравнение верно.
Anatoly
Блин, 1.5 не подходит. Нужный порог - 1.3247
Подумай ещё раз: какую функцию ты МИНИМИЗИРУЕШЬ? Не корень ищещь, а минимум
Андрей
Подумай ещё раз: какую функцию ты МИНИМИЗИРУЕШЬ? Не корень ищещь, а минимум
Без понятия. Зачем функцию строить, если всё уравнением решается?
Anatoly
Чего? Последнее уравнение верно.
Почему x^3, а не x^7, например?
Anatoly
Андрей
Почему x^3, а не x^7, например?
Потому что на четвертом шаге нам понадобится x^3 памяти. Данные нужно разместить в памяти, которая выделяется на первом и втором шагах.
Андрей
Третий шаг не трогаем, так как там хранятся данные.
Anatoly
С чегойта?
Anatoly
Между 3 и 4 шагом у нас в проге ещё навыделялось всякого.
Anatoly
Но уже хоть видно свет в конце тоннеля.
Андрей
Андрей
Или память дешева и на неё пофиг?
Anatoly
Но тогда нам подходит любая константа между 1 и 2
Андрей
x ~ 1.3247
Андрей
Между 1 и 1.3247
Anatoly
Или память дешева и на неё пофиг?
В памяти кроме мегавектра живёт ещё куча всего, так что пустые блоки долго пустыми не останутся.
Андрей
В памяти кроме мегавектра живёт ещё куча всего, так что пустые блоки долго пустыми не останутся.
Самое простое оправдание, когда выбираешь константы на отъебись.
Anatoly
И раз пошли такие танцы, и ты хочешь реюз на 3 шаге, то уравнение должно быть 1 + x + x^2 = x^3
Sergey
как можно надеяться на реюз?
Sergey
когда мы живем в куче
Андрей
Так как после выделения памяти нужно ещё данные хранить где-то. Поэтому память из второго шага перетирать нельзя.
Андрей
когда мы живем в куче
Поэтому можно делать на пофиг?
Anatoly
Нет. 1 + x = x^2 было бы.
Пардон, имел в виду реюз на 4 шаге, при третьем перевыделении памяти.
Андрей
Пардон, имел в виду реюз на 4 шаге, при третьем перевыделении памяти.
Но по идее так как данные не перетираются, то можно было бы сделать реюз на третьем шаге, но с/с++ этого, к сожалению не позволяет.
Anatoly
С другой стороны, что цланг, что гцц тупо множат на 2. И ещё встречаются высказывания типа ```Typical growth factors in implementations are 2 or 1.5, though any number strictly greater than 1 will do.```
Anatoly
Похоже, @AndreyVassilyev знает про хип что-то такое, чего не знают разрабы компиляторов. Или наоборот.
Андрей
Похоже, @AndreyVassilyev знает про хип что-то такое, чего не знают разрабы компиляторов. Или наоборот.
Ну да, я - идиот. Ведь люди то не могут ошибаться. Кто я по сравнению с разработчиками компиляторов?
Андрей
В чём ошибка то, дружище мой?
Андрей
Или будем просто давить авторитетом других людей?)
Anatoly
Канешна! Ибо какая ещё польза с того авторитета, если им нельзя давить? :)
Андрей
Канешна! Ибо какая ещё польза с того авторитета, если им нельзя давить? :)
Только бы ещё это был бы ваш авторитет. А пока поищите ошибку в рассуждениях. Полезнее будет.
Anatoly
А зачем мой авторитет? Своё мнение "константа пофиг" я и без него высказал.
Anatoly
Хотите - верьте, хотите - нет.
Андрей
Ну? а я конкретно показал какая константа наиболее выгодна. Путь и в ущерб производительности.
Андрей
http://www.gahcep.com/cpp-internals-stl-vector-part-1/
Андрей
Вот здесь высказаны мои рассуждения.
Андрей
Где-то в середине страницы. По картинкам увдите.
Anatoly
Вот про константы http://stackoverflow.com/questions/6550509/amortized-analysis-of-stdvector-insertion
Andrei
лол
Andrei
пустой спор был какой-то вообще
Andrei
на практике всё не так.
Square
Факт!
Square
Оптимизация ради оптимизации
Andrei
Да даже не в этом дело.
Andrei
Ситуация, когда в вектор надо в цикле что-то напихивать — очень редкая.
Andrei
Практически н встречающаяся.
Square
А. Эт тоже
Square
Тут просто так много сюжетных линий в их споре )
Andrei
С вектором надо работать так, что сначала делаешь ресайз или резёрв до нужного размера, потом работаешь
Andrei
Если же прходится пушбечит, свести это к минимуму
Andrei
и вызвать shrink_to_fit
Square
Я вообще стараюсь всегда избегать реаллоков
Andrei
Да, вот именно, и обычно это сделать несложно.
Square
В принципе выделить буфер и в нем работать
Square
Ну у нас специфика такая в работе