Re[17]: Перешёл на личности -- значит слил.
От: Erop Россия  
Дата: 06.07.11 11:16
Оценка:
Здравствуйте, IROV.., Вы писали:

IRO>Я скорее всего отвечал вот на этот закидон.

Выбирай выражения.

IRO>

IRO>В любом случае, обычно компилятор формальные проверки делает лучше, чем человек. Так что писать for( int i = 0; i < c.size(); i++) { body(); } НАДЁЖНЕЕ!


С чего ты взял, что c -- это std::vector, и вообще, что он из stl?

IRO>18900.4 — i < v.size();

IRO>8985.34 — i < i_end;

IRO>~2 раза

Так я за то самое и ратую, что надо с stl-контейнерами работать через итераторы, а не через индексы...

IRO>Ты стесняешься своей личности? facepalm

1) Слово "тограш" эмоционально окрашено, и вообще тут не уместно.
2) Моя личность -- офтопик в форуме по С++

IRO>Есть индустрия — купи-продай, а есть производство, вот ты самый низкий пласт — торгаш.

Ну тебе уже пора извиниться.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[18]: Перешёл на личности -- значит слил.
От: IROV..  
Дата: 06.07.11 11:24
Оценка: -2
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, IROV.., Вы писали:


IRO>>

IRO>>В любом случае, обычно компилятор формальные проверки делает лучше, чем человек. Так что писать for( int i = 0; i < c.size(); i++) { body(); } НАДЁЖНЕЕ!


E>С чего ты взял, что c -- это std::vector, и вообще, что он из stl?

С того что в моем случае, это не зависит от твоего "сьезда".

IRO>>18900.4 — i < v.size();

IRO>>8985.34 — i < i_end;

IRO>>~2 раза

E>Так я за то самое и ратую, что надо с stl-контейнерами работать через итераторы, а не через индексы...

В любом случае, обычно компилятор формальные проверки делает лучше, чем человек. Так что писать for( int i = 0; i < c.size(); i++) { body(); } НАДЁЖНЕЕ!

Даже если у тебя size(){ return this->m_size;} то этот сайз будет всегда читаться из памяти, со всеми вытикающими бедами.

IRO>>Ты стесняешься своей личности? facepalm

E>1) Слово "тограш" эмоционально окрашено, и вообще тут не уместно.
Ты уже посмотрел ролик про соузпарк и Тома Круза, который я тебе сбросил?

E>2) Моя личность -- офтопик в форуме по С++

Мой моск это не понял.

IRO>>Есть индустрия — купи-продай, а есть производство, вот ты самый низкий пласт — торгаш.

E>Ну тебе уже пора извиниться.
Ты уже пожаловался модераторам? а то пацан сказал пацан не сделал, как то не помужски

З.Ы. и вообще я завязываю, моей целью не стоит напостить по 40 сообщений в день как у тебя

42667 / (06.07.11 — 31.03.05) ~ 40

я не волшебник, я только учусь!
Re[19]: Перешёл на личности -- значит слил.
От: Erop Россия  
Дата: 06.07.11 11:30
Оценка:
Здравствуйте, IROV.., Вы писали:

IRO>Даже если у тебя size(){ return this->m_size;} то этот сайз будет всегда читаться из памяти, со всеми вытикающими бедами.

Примеры, пожалуйста. А то с .end бед что-то нет особых...

E>>2) Моя личность -- офтопик в форуме по С++

IRO>Мой моск это не понял.
Сочувствую.

IRO>>>Есть индустрия — купи-продай, а есть производство, вот ты самый низкий пласт — торгаш.

E>>Ну тебе уже пора извиниться.
IRO>Ты уже пожаловался модераторам? а то пацан сказал пацан не сделал, как то не помужски
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: А вот и фиг!
От: IROV..  
Дата: 06.07.11 13:10
Оценка:
Здравствуйте, IROV.., Вы писали:

И за что минус?

разве не извесный факт что есть как минимум две реализации

в одной size() — O(N)
в другой splice() — O(N)

одновремено O(C) для size и splice алгоритмов нет.

Для листа есть операция splice, потому что её можно выполнить очень эффективно — поменять значения десятка указателей, И ВСЁ, вне зависимости от количества элементов которые переносятся из одного контейнера в другой. Для вектора реализовать splice более эффективно чем в коде приведенном выше НЕЛЬЗЯ, поэтому splice для вектора не определяется. Кстати c list::splice не всё так чисто — либо list::length либо list::splice имеют сложность O(1), но не обе сразу.

Вот даже чьята цытата из гугла
я не волшебник, я только учусь!
Re[4]: Выносить вычисление длины выше цикла уже не нужно?
От: Dmi3S Россия http://dmi3s.blogspot.com/
Дата: 16.07.11 02:33
Оценка:
Здравствуйте, Tilir, Вы писали:

T>В случае же size() могут быть нюансы. Например в std::list при реализации предпочли splice за O(1), за что у них size вычисляется за O(N). Что при длинных списках и проверке в теле цикла может сказываться убийственно.


Сам был удивлен, но в C++0x std::list<>::size() должна выполняться за O(1).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.