Тут недавно затрагивался вопрос стандартных и кутэшных контейнеров Было высказано

мнение, что лучше использовать стандартные, а кутешные только для работы с апи кутэ

Решил погуглить альтернативное мнение
Нагуглил ответ на этот вопрос

Не могу сказать, что одно противоречит другому, но по ссылке аргументов за кутэшные контейнеры побольше, однако они(аргументы) мне показались какими-то вялыми

Человек в ответе говорит про взаимодействие с апи, причём разбивает это на несколько аргументов за
А остальное особо не впечатляет

Какой итог этому можно подвести?

28 ответов

13 просмотров

"Используйте фреймворки, а не женитесь на них".

Ну тому же QString аналога в STL в общем-то нет Но, в отличие от, например, юникодной стринги раста, QString плох использованием UTF-16

Вообще я затрагивал эту тему в моём семинаре, где-то у нас была тут даже презентаха... Есть и видео, но оно такого страшного качества что туши свет. Ну и можно на эту тему посмотреть видео Джузеппе Д'Анжело, с CppCon. Оно простаннее и не только на эту тему, зато качество гут.

Ещё раз, официальная позиция Qt - не надо в программе использовать контейнеры Qt, если этого не требует взаимодействие с самой библиотекой Qt.

Ilya Zviagin
Вообще я затрагивал эту тему в моём семинаре, гд...

Там вроде тесты были Было бы интересно сравнение с Qt 6

𝚅𝚜𝚎𝚟𝚘𝚕𝚘𝚍
Там вроде тесты были Было бы интересно сравнение с...

Тесты не интересны, если ты о производительности. КОнтейнеры Qt и STD обладают разными свойствами, они не взаимозаменяемы безусловно.

Ilya Zviagin
Тесты не интересны, если ты о производительности. ...

Ну, тут скорее интересны преимущества (или недостатки) новой реализации перед старой

𝚅𝚜𝚎𝚟𝚘𝚕𝚘𝚍
Ну тому же QString аналога в STL в общем-то нет Но...

Вот это да, QString совсем другой, без него как без рук, но это не совсем контейнер. Это строка.

Ilya Zviagin
Вот это да, QString совсем другой, без него как бе...

Std::string-у до qstring как до луны пешком.. и это очень огорчает когда приходится писать чистый c++ код без qt

Юрий Александров
Std::string-у до qstring как до луны пешком.. и эт...

Скажем прямо: не "как до Луны", а "задачи другие"

Юрий Александров
А в чем другие? И то и то строка..

Майбах и УАЗик - тоже машины, и ещё вопрос, где в какую сесть. std::string прочно заняла место крайне быстрой байтопомойки плюс совместимость с Си-строками

Dmitriy [Отпуск]
Майбах и УАЗик - тоже машины, и ещё вопрос, где в ...

Совместимость с C в смысле возможность вернуть const char * c_str?

Dmitriy [Отпуск]
Майбах и УАЗик - тоже машины, и ещё вопрос, где в ...

Но удобная строка в 2021 - это совсем не о std::basic_string, факт

Dmitriy [Отпуск]
Да, без лишних аллокаций и конвертаций

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

Юрий Александров
И как это должно выглядить с точки зрения байтопом...

Если мне требуется работать с API OS, принимающим char*/wchar_t*, замены std'шной строке нет :) А вопроса не понял, если честно

Dmitriy [Отпуск]
Если мне требуется работать с API OS, принимающим ...

Ну про байтопомойку это не я сказал.. в моем представлении байтопомойка это массив произвольных байт, а null terminated string это отдельная история.. для легких Latin1 строк в Qt есть соотвествующий класс кстати

Юрий Александров
Ну про байтопомойку это не я сказал.. в моем предс...

Соглашусь, пожалуй. Хотя лишний байт не так критичен, как отсутствие resize_uninitialized

Юрий Александров
Ну у QString есть соотвествующий метод ;)

А в WinAPI есть чудо вида GetData(wchar_t* buf, unsigned long len, unsigned long* written). Чо делать-то?

Dmitriy [Отпуск]
А в WinAPI есть чудо вида GetData(wchar_t* buf, un...

Оно хоть что делает? ;) типа вернуть до N wchar_t и сколько в результате получилось?

Юрий Александров
Оно хоть что делает? ;) типа вернуть до N wchar_t ...

Пишет до len байт и во written возвращает нужный размер; len может быть 0, buf - нет

Юрий Александров
А в чем другие? И то и то строка..

QString для юникода, std::string - для быстрых и компактных строк однобайтовых или двух или 4хбайтовых символов.

Похожие вопросы

Обсуждают сегодня

Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта