cyberzx 🇷🇺
есть и vector_set. это set, который сделан на векторе
Ioann_
Set на векторе, хммм это типа может дерево отрезков ?
Ioann_
Или как это понимать ?
Ioann_
Ааа
Ioann_
Все понял
Ioann_
Fixed это типа часть на стеке часть на куче ?
cyberzx 🇷🇺
в fixed_ вообще нет динамических алокаций. буфер хранится в самом векторе
🦥Alex Fails
ништяк, Антону понравится
Ioann_
Я пока не очень понял что значит нету динамических аллокаций ?
Ioann_
Типа все на стеке ?
cyberzx 🇷🇺
ну посмотри https://github.com/electronicarts/EASTL/blob/master/include/EASTL/fixed_vector.h
Ioann_
Ок. Буду смотреть. Я просто ем, оттого столько вопросов.
cyberzx 🇷🇺
нет. есть мембер в векторе типа такого char buffer[capacity * sizeof(T)] и он используется для аллокаций
cyberzx 🇷🇺
внутренних
🦥Alex Fails
Мне очень не нравится заголовок лицензии у этого файла: "Copyright Electronic Arts. All rights reserved." - какая лицензия у библиотеки?
Ioann_
Ну так это стековая чухня
Ioann_
У меня есть такой аллокатор
cyberzx 🇷🇺
Ну так это стековая чухня
ты же можешь вектор выделить в хипе. тогда и его буфер будет в хипе
Ioann_
Типа reserve ?
cyberzx 🇷🇺
лицензия ок. это не как у фейсбучного реакта :)
cyberzx 🇷🇺
где в лицензии написано, что если вы или компания афилированная с вами подаёте патентный иск или контр-иск против ФБ, то лицензия на реакт инвалидируется сразу же.
cyberzx 🇷🇺
ну да. в патентном гранте
Ioann_
Я патентов как огня боюсь
Vladislav
и аннулируется не лицензия, соответственно)
Vladislav
Я патентов как огня боюсь
патенты США разве где-то за пределами США работают?
Ioann_
Не шарю
Ioann_
А что нет разве ?
cyberzx 🇷🇺
и аннулируется не лицензия, соответственно)
а что это значит тогда? The license granted hereunder will terminate, automatically and without notice, if you (or any of your subsidiaries, corporate affiliates or agents) initiate directly or indirectly, or take a direct financial interest in, any Patent Assertion: (i) against Facebook or any of its subsidiaries or corporate affiliates, (ii) against any party if such Patent Assertion arises in whole or in part from any software, technology, product or service of Facebook or any of its subsidiaries or corporate affiliates, or (iii) against any party relating to the Software. Notwithstanding the foregoing, if Facebook or any of its subsidiaries or corporate affiliates files a lawsuit alleging patent infringement against you in the first instance, and you respond by filing a patent infringement counterclaim in that lawsuit against that party that is unrelated to the Software, the license granted hereunder will not terminate under section (i) of this paragraph due to such counterclaim.
cyberzx 🇷🇺
Хотя это всё офтопик касательно С++
Ioann_
flat контейнер - он такой себе, то есть если по убыванию вставлять - то долго будет
Ioann_
профита никакого
Ioann_
просто есть такая фишка что на векторе можно построить дерево сегментов, оно позволит находить минимум ровно за логарифм - без каких либо констант
Ioann_
и балансировок
Ioann_
Вставлять да, ну как да - если заранее только знать, сколько места потребуется
Ioann_
Ну там разные вообще методы есть, кажется за О(1) это что то типа алгоритма Бендера кого то там
Ioann_
та я думал ты про ДО
Ivan
Парни, с кем можно по поводу веб сервера на с++ пообщаться?
Vladislav
Со Столяровым
Ivan
Это кто
Vladislav
Так, наркоман один http://cmc.wiki/%D0%A1%D1%82%D0%BE%D0%BB%D1%8F%D1%80%D0%BE%D0%B2_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87
Ioann_
Кому интересно, вот результаты сравнения разных сетов
Ioann_
Ioann_
тестировалось на 1 << 24 числах сгененых рандомно в диапозоне 1 << 16
Ioann_
1 строка время заполнения, вторая - поиска
Ioann_
К слову, 4096 - размер буфа моего аллокатора, ну и сета в том числе
cyberzx 🇷🇺
у меня на инсерте 1 « 24 рандомных интов eastl быстрее stdlibc++ от 6.3 в 1.33 раза
cyberzx 🇷🇺
2.20 с против 2.92
cyberzx 🇷🇺
имеет смысл ещё протестировать поиск и удаление
Ioann_
2.20 с против 2.92
Дабы не вводить в заблуждение читателей чата - ты использовал std alloc в std set :)
Vladislav
https://twitter.com/nick_craver/status/893904955974852608
Pepe 🐸
Написал простейшее бинарное дерево: есть функции: insert, delete_tree и print_inorder. Не могу удалить дерево, не понимаю почему. Когда все удаляю и пытаюсь распечатать где то происходит ошибка в принте: https://onlinegdb.com/rkFOgaWv-
В общем именно баг был в том что надо было root = nullptr сделать не в private версии destroy_tree а в public. Хотя я не очень понимаю почему нельзя сделать в private. Мы передаём в функцию destroy_tree(Node<T> *node) переменную root. Почему root = nullptr в функции destroy_tree() работает а node = nullptr в функции destroy_tree(Node<T> *node) нет
Pepe 🐸
Спасибо юзеру Олег Доронин за поправки
Pepe 🐸
Запостил решение бага
Pepe 🐸
Так тоже работает, то есть ты правильно заметил. В общем проганье BST расширило разум 😁
Pepe 🐸
Ага, я просто не понимал почему он не обнулялся, теперь понял
Andrey
Здравствуйте. Такой вопрос: насколько реально устроится Джуном на с/с++?
Pepe 🐸
Если в публичной версии написать прямо root = nullptr то все обнулится также как и в твоём примере где ты по ссылке передал
Burado
Либо я туплю, либо просто долбанулся, но чёт забыл, как передать адрес на массив char в функцию, чтобы в ней можно было его изменить? Типо: void doSomething(char* str) {}
Burado
Здравствуйте. Такой вопрос: насколько реально устроится Джуном на с/с++?
В моём оч малоизвестном городе я нашёл. Мне 16, работаю там с нейросетями.
Pepe 🐸
Burado
Так что реально всё.
Pepe 🐸
А в приватной версии не обнуляется потому что создаётся копия указателя root
То есть node = nullptr не присваивает nullptr переменной root. Если только как ссылку не передать
Burado
Ну, тип, я хочу сделать инверс строки. void inverse(char *str) { //Тут, когда какой-то ячейке присваиваю какое-либо значение, приложение падает. str[x] = str[y]; }
Andrey
а не проще использовать *.begin и *.end? и будет тебе чтение с другого конца строки
Burado
Точнее, задачу.
Andrey
значит у тебя строка как массив по ячейкам хранится?
Burado
+ Ну, массив сhar - строка же.
Burado
А ,ну ок.
Andrey
все что отделять массив от строки в чистом С, это наличие /0
Burado
Не обязательно, но пока что применения для простого хранения символов не видел)
Burado
Сам массив.
Burado
Обычно делается так в стиле С++ void do(T &var); В С хз, шо и как с этим char*)