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." - какая лицензия у библиотеки?
Vitaliy ◀️TriΔng3l▶️
Ioann_
Ну так это стековая чухня
Ioann_
У меня есть такой аллокатор
cyberzx 🇷🇺
Ioann_
Типа reserve ?
cyberzx 🇷🇺
лицензия ок. это не как у фейсбучного реакта :)
cyberzx 🇷🇺
где в лицензии написано, что если вы или компания афилированная с вами подаёте патентный иск или контр-иск против ФБ, то лицензия на реакт инвалидируется сразу же.
Vladislav
cyberzx 🇷🇺
ну да. в патентном гранте
Ioann_
Я патентов как огня боюсь
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 🇷🇺
Хотя это всё офтопик касательно С++
Vladislav
а что это значит тогда?
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.
как я и сказал, забирают патенты. BSD-лицензию нельзя забрать
Ioann_
flat контейнер - он такой себе, то есть если по убыванию вставлять - то долго будет
Ioann_
профита никакого
Ioann_
просто есть такая фишка что на векторе можно построить дерево сегментов, оно позволит находить минимум ровно за логарифм - без каких либо констант
Ioann_
и балансировок
Ioann_
Вставлять да, ну как да - если заранее только знать, сколько места потребуется
Vladislav
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 🐸
Спасибо юзеру Олег Доронин за поправки
Pepe 🐸
Запостил решение бага
Pepe 🐸
Pepe 🐸
Так тоже работает, то есть ты правильно заметил. В общем проганье BST расширило разум 😁
Pepe 🐸
Ага, я просто не понимал почему он не обнулялся, теперь понял
Pepe 🐸
Andrey
Здравствуйте. Такой вопрос: насколько реально устроится Джуном на с/с++?
Pepe 🐸
Если в публичной версии написать прямо root = nullptr то все обнулится также как и в твоём примере где ты по ссылке передал
Burado
Либо я туплю, либо просто долбанулся, но чёт забыл, как передать адрес на массив char в функцию, чтобы в ней можно было его изменить?
Типо:
void doSomething(char* str) {}
Pepe 🐸
Burado
Так что реально всё.
Burado
Ну, тип, я хочу сделать инверс строки.
void inverse(char *str)
{
//Тут, когда какой-то ячейке присваиваю какое-либо значение, приложение падает.
str[x] = str[y];
}
Andrey
а не проще использовать *.begin и *.end? и будет тебе чтение с другого конца строки
Burado
Burado
Точнее, задачу.
Andrey
значит у тебя строка как массив по ячейкам хранится?
Burado
+
Ну, массив сhar - строка же.
Burado
А ,ну ок.
Andrey
все что отделять массив от строки в чистом С, это наличие /0
Burado
Не обязательно, но пока что применения для простого хранения символов не видел)
Burado
Сам массив.
Burado
Обычно делается так в стиле С++
void do(T &var);
В С хз, шо и как с этим char*)