- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
QStringList list;
QStringList::iterator i, j;
//...
i = qLowerBound(list.begin(), list.end(), value);
j = qUpperBound(list.begin(), list.end(), value);
while (i != j) {
processItem(*i);
++i;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1001
QStringList list;
QStringList::iterator i, j;
//...
i = qLowerBound(list.begin(), list.end(), value);
j = qUpperBound(list.begin(), list.end(), value);
while (i != j) {
processItem(*i);
++i;
}
Пахучее пятнышко из брошюры "Qt 4's Generic Algorithms"
если в processItem кутэшный разбор xml, то вообще никто и не заметит на общем фоне
а это вовсе вариация на тему deque, отличный выбор названия для контейнера
Это скорее список с индексным доступом или нумерованный список.
Ну смотри. У меня есть ссылки на все ноды и хранятся они в HashMap или TreeMap или в массиве (не важно). И тут сразу оказывается, что DoubleLinkedList предоставляет, surprise... , random access. Я могу получить доступ к произвольному элементу DoubleLinkedList. Если ты не можешь, то это пробел в твоих знаниях.
ЧЯДНТ?
Random Access List подразумевает, что имеется random access через интерфейс списка. Фейл.
По TreeMap random access по ключу не получишь. Фейл.
Иди подучись, школота. А ещё на ФП имеешь смелость замахиваться.
Чего? По моему это тебе нужно подучиться.
You can not into data structures.
Random Access - произвольный доступ к данным и время доступа не специфицируется. Иначе пруф?
> random access (sometimes called direct access) is the ability to access an element at an arbitrary position in a sequence in equal time, independent of sequence size.
EPIC FAIL
random access как раз подразумевает O(1) время доступа к a[i], где i - произвольное
на тебе пруф http://en.wikipedia.org/wiki/Random_access
но молодец, что оживил ветку, а то скучно
2 в уме :)
привычка...
Свенсон играл в гольф.
- Черт побери! Опять промахнулся! - чертыхался он, когда ему не
везло.
- Нельзя так выражаться. Господь услышит и поразит вас молнией
небесной! - назидательно произнес случившийся рядом пастор. И
впрямь сверкнула молния и поразила... пастора.
- Черт побери! Промахнулся! - раздалось с небес...
C++:
std::list - DoubleLinkedList
в ынтырпрайзе проще докупить памяти в сервер или добавить ноду, чем заставлять программиста думать головой и выбирать наиболее подходящий контейнер для задачи, дороже обойдется
sad but true
>добавить ноду
дело в том, что не все сервера одинаково хорошо масштабируются горизонтально.
(sql-ники , например)
Тормознули на взлете, так сказать.
Там именно алгоритмическая сложность другая.
спой нам еще, птичка
ПОСОНЫ УЖЕ ВЫИХАЛИ!!!
(с О(log2 n) до 2О(log2 n))
selffix
Если уж хочешь написать правильно, нужно использовать константы явно.
Да кеп. Константы указаны в рамках сравнения производительности почти одинаковых по скорости роста числа операций алгоритмов.
Пусть будет так:
( с Оп(~log2 n) до Оп(~2log2 n) )
Ой, даже два оппонента. Да, ещё там Пушков был. Он тоже определения O(n) не знает.
Иногда я ненавижу ГД за это. За абсолютную и агрессивную уверенность идиотов в своей правоте.
не ровен час он скоро зарегает hoholGovno
поц, похоже, нарекает все говном, что сам пробует
Это компренда вообще-то.
Ржачно спамил на гк, угрожал админу.
Какой из них?
Хуйня карочи.
Зачем ему 146 клонов?
Зачем кто они и как их зовут?
Зачем и где они живут?
Много сатанистов произошла утечка прибора способного стирать с мозга человека всю информацию.
Много эти люди не знают,
Зачем кто они и как их зовут?
Зачем последние годы в россии появилось несколько десятков людей зрелого возраста абсолютно здоровых?
Зачем но с полностью отсутствующей памятью?
Малость которую контролируют шестипалые инопланетяне,
Малость так и у сатанистов называется этот центр *цивилизация землян 3-6-9*.
Зачем но при этом ничего не записывать обратно на стёртый мозг?
Малость и сатанисты усердно ищут этот прибор.
Зачем так и в массовом порядке на больших расстояниях?
Малость они умеют читать чужие мысли.
Зачем что в сатанинских секретных документах расшифровывается как: фсб-фюрер снова бог земли русской?
Зачем сатанинская секта обладает очень серьёзными высокоразвитыми технологиями?
Много уничтожить всё земное человечество в мясорубке будущих концлагерей,
Зачем создав свою службу фсб?
Много уничтожить всё земное человечество в мясорубке будущих концлагерей,
Много создав свою службу фсб.
Зачем они умеют читать чужие мысли?
Зачем путин получился у сатанистов наиболее удачными гитлеровским клоном?
Зачем уничтожить всё земное человечество в мясорубке будущих концлагерей?
Зачем создав свою службу фсб?
https://forum.kursknet.ru/viewtopic.php?t=8658
А безумцы видят реальность сквозь десятилетия.
https://govnokod.ru/26269#comment517053
- чем? Я так сходу не нашёл, слишком много у него флуда
а, нет, ложкая творога
Похоже, я не понимаю как из этого поста можно было сделать такой вывод. Видимо, я не понимаю значения этого слова. Пошёл гуглить.
>мудак - всякая особь мужского пола с несоразмерно развитыми яйцами. Образовано от "муде" - (старославянское) мужские яйца.
>мудак - человек, упорно идущий к своей неправильной цели.
никчемный
Прочти, что написано на аве.
>подражать слоупокам-подражателям
>что хуй простой
Какой пиздец.
Surzhyk
Неужели я опять услышу следующий ответ?
Но я лично знаю 2х кьютешников, которым религия не позволяет использовать std::*
приводят доводы, что qt старше stl, поэтому безусловно правильнее, что для qt существует миллион биндингов для других языков, что у кутэшников свой особенный стиль, поэтому имена с подчеркиванием запрещены
вот так они варятся в своей экосистеме, а потом на собеседованиях выясняется, что знание Qt != знанию С++, что человек боится узнать чем ссылка отличается от указателя, поэтому всегда копирует аргументы в стек, что человек не знает отличия структуры от класса и благодарит, что он на собеседованиях узнает много новенького
так что кутешников лучше не трогать
В случае с qLowerBound и прочими алгоритмами из qalgorthms.h это не верно. Они полностью схожи с stl алгоритмами. Даже имеют схожую реализацию. То есть фактически этот хедер основывается на реализации stl от Степанова. Идея с итераторами, похожими на указатель - чисто Степановская идея. Если взглянуть на реализациию qLowerBound, то там используется строка Container::const_iterator. В этот раз мы видим копипасту из реализации stl от Степанова. То есть, по всему видно, что эта часть библиотеки qt появилась после появления stl.
Единственное, чем можно оправдать создателей: эти костыли созданы для переносимости в древние компиляторы, где нет stl. Но сейчас таких мало. Сейчас, конечно, есть компиляторы, где нет поддержки stl, но туда просто не возможно портировать stl из-за отсутствия в этих компиляторах нормальной поддержки шаблонов. А значит эти костыли алгоритмов там все равно работать не будут.
То есть сейчас эти костыли не имеет смысла использовать. Их нужно пометить как deprecated и выкинуть из интерфейсной части справки qt.
От используемых 10 лет костылей так просто не избавиться. А нужны они ещё и потому, что Qt — не только C++. Скорее выбросят поддержку C++.