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

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

Страницы: 13 4 5 6112 Следующая »
#45
16:36, 2 июня 2010

Спрошу по-другому: Можно ли с минимумом траблов использовать вектор для создания динамических массивов переменных и классов и стринг для нормальной работы со строками?


#46
16:37, 2 июня 2010

> Спрошу по-другому: Можно ли с минимумом траблов использовать вектор для создания динамических массивов переменных и классов и стринг для нормальной работы со строками?
Можно.

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

-Eugene-
> Спрошу по-другому: Можно ли с минимумом траблов использовать вектор для
> создания динамических массивов переменных и классов и стринг для нормальной
> работы со строками?
нужно.

#48
16:46, 2 июня 2010

Necrys
Pushkoff
Ура!

#49
17:12, 2 июня 2010

Pushkoff
> по моему компилятор уже давно научился решать проблему вызова лишних пар
> конструктор/деструктор...
Куча простых людей верит, что бог может все.
Куча программистов верит, что компилятор оптимизирует все.
Все они не правы, потому что верить, это самое худшее, что может делать человек головой.

#50
17:20, 2 июня 2010

Pokimon
> > по моему компилятор уже давно научился решать проблему вызова лишних пар
> > конструктор/деструктор...
> Куча простых людей верит, что бог может все.
> Куча программистов верит, что компилятор оптимизирует все.
> Все они не правы, потому что верить, это самое худшее, что может делать человек
> головой.

вот пипец натуральный, ты только религию не  трогай

#51
17:39, 2 июня 2010

Pokimon
innuendo
Холивар!

#52
18:01, 2 июня 2010

innuendo
> а приоритет как же ?
>
> типа скобок и тд :)
>
> ну это мы загнались

Это отдельно уже, как конвенция. Я хотел упростить задачу. :)

#53
18:13, 2 июня 2010

Проблему я затронул, но на деле проблема не в скорости и даже не в копировании (к тому же вроде тесты показывают что ничего по скорости не теряется из-за копирования), а дело всё в лишних конструкторах и деструкторах.
Если компилятор еще сможет справиться с оптимизацией лишнего копирования и удаления памяти для временных объектов, то copy конструкторы ему все равно придется выполнять и деструкторы тоже.

Но в любом случае, если нет copy конструкторов и деструкторов, то вектор не имеет претензий.
Вот и сбственно всё :) вроде бы.

Я щас озадачен не STL-ом уже, а встроенным malloc и free (и как следствие new и delete), либо мне мерещется, либо в VS2010 они стали летать ..., неужели оптимизировали ? пойду еще проверю :)

#54
18:26, 2 июня 2010

djonmalkovi4
> Но в любом случае, если нет copy конструкторов и деструкторов, то вектор не
> имеет претензий.
они сгенерируются автоматически...

djonmalkovi4
> а дело всё в лишних конструкторах и деструкторах
сначала проверь, не выкинул ли их оптимизатор...

Pokimon
> потому что верить
какая вера? у всего этого есть названия - начиная с RVO, NRVO, и кучи тому подобных... вместо тупой и бессмысленной пропаганды С, лучше бы книг почитал...
хотя, не читай... пока ты туп и упорот - ты доставляешь...

#55
18:28, 2 июня 2010

djonmalkovi4
> встроенным malloc и free (и как следствие new и delete)
запости код где ты их увидел в векторе... они используются только при изменении размера вектора, вставка/удаление в большинстве случаев происходит без их участия...

#56
21:02, 2 июня 2010

Pokimon
Изображение

#57
21:20, 2 июня 2010

А как вставлять в STL контейнеры умные указатели типа CComPtr, чтобы не дергать лишний раз счетчик ссылок?
void fun(IUnknown *p) {
  std::list<CComPtr<IUnknown> > l;
  l.push_back(p);
}

#58
21:26, 2 июня 2010

Если вам хочется хранить в контейнерах указатели, используйте лучше boost::ptr_container, там не надо думать об удалении объектов.

#59
21:54, 2 июня 2010

Pushkoff
> у всего этого есть названия - начиная с RVO, NRVO,
Которые, кстати, по большому стратегическому счёту суть всё-таки зло, ибо усложняют правила, по которым предсказывается, сколько копий будет сделано от той или иной операции, и определяется времени жизни объекта.

Страницы: 13 4 5 6112 Следующая »
ФлеймФорумПрограммирование

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