Войти
ФлеймФорумПрограммирование

Почему я никогда не буду использовать STL. (3 стр)

Страницы: 1 2 3 4 5112 Следующая »
#30
15:31, 2 июня 2010

Pushkoff
> читай внимательно первый пост...
И что?
Топикстартер юзает push_back с экземпляром объекта, созданного дефолтным конструктором.
На что я и предложил не пушать, а ресайзить вектор. Эффект идентичный, а временных объектов не создается и не копируется.


#31
15:32, 2 июня 2010

chiaroscuro
а приоритет как же ?

типа скобок и тд :)

ну это мы загнались

#32
15:40, 2 июня 2010

RPGman
> опикстартер юзает push_back
топикастер жалуется на то что при вызове конструктора по умолчанию на стеке создается временный объект, ссылка на который передается в push_back, который копирует данные из временного объекта в тот объект который хранится в стеке... естественно что при push_back может выделяться больший буфер, с этим автор смирился, а вот с лишним копированием он смириться не может, так как оно действительно лишнее...

#33
15:45, 2 июня 2010
Изображение
#34
15:46, 2 июня 2010

Дико извиняюсь... Да, временный объект все-равно будет создан внутри resize. Опачки...

#35
15:51, 2 июня 2010
Изображение
#36
15:55, 2 июня 2010

а кто нибудь пробовал решения на основе Range которые александреску именовал убийцами итераторов и stl?? делитесь, как оно?

#37
15:59, 2 июня 2010

Pushkoff
Вроде как в последнем бусте они сильно допилили библиотеку Range (главное - добавили поддержку алгоритмов). Это не совсем по Александреску, но близко.
Надо будет посмотреть...

#38
16:01, 2 июня 2010

RPGman
перечитав первый пост, задался вопросом, причем здесь алокаторы?
и кто нибудь смотрел в асм листинг? по моему компилятор уже давно научился решать проблему вызова лишних пар конструктор/деструктор...

#39
16:18, 2 июня 2010

Pushkoff
> практически всегда, побаловавшись со своими велосипедами, я нахожу как это
> сделать через СТЛ не проиграв в эффективности, но сильно выиграв в количестве и
> понятности кода...
++
ну только в моём случае "прктически всегда" я бы заменил на "достаточно часто"

#40
16:21, 2 июня 2010

Pushkoff
> по моему компилятор уже давно научился решать проблему вызова лишних пар конструктор/деструктор...
А я вот был уверен, что вектор при ресайзе зовет placement new для добавляемых элементов, а не юзает insert с временным экземпляром объекта.
Ан нифига. Причем вектор ведет себя даже хуже дека на том же самом ресайзе. Один лишний вызов конструктора копирования на каждый вызов resize.

#41
16:22, 2 июня 2010

Так и не въехал... Чем такой нехороший vector и string? Лучше уж взять готовый динамический массив с граблями, нежели писать свой, тоже с граблями....

#42
16:23, 2 июня 2010

holywar again

а как всё хорошо начиналось то :)

#43
16:24, 2 июня 2010

И у каждого будет свой велосипед. Со своими квадратными колёсами.

#44
16:30, 2 июня 2010

Necrys
> Со своими квадратными колёсами.
и педалями вовнутрь :)

Страницы: 1 2 3 4 5112 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.