LINUX.ORG.RU

Какие контейнерные библиотеки для C++ вы бы хотели (а не вынуждены) использовать

 ,


0

2

Какие контейнерные библиотеки для языка C++ вы бы хотели (а не вынуждены) использовать по работе?

  1. Не пишу на C++ 224 (58%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. STL, современный, С++11 и выше 114 (29%)

    ******************************************************************************************************************************************************************

  3. QtCore, современный, версии 4+ (напишу в комментариях) 60 (16%)

    *************************************************************************************

  4. Boost C++ libraries, новый 32 (8%)

    *********************************************

  5. Все плохо, нужно писать свое 26 (7%)

    *************************************

  6. STL, классический, C++98 23 (6%)

    ********************************

  7. Все плохо, контейнеры не нужны 18 (5%)

    *************************

  8. wxWidgets 13 (3%)

    ******************

  9. Boost C++ libraries, старый, когда он был еще "маленьким" 6 (2%)

    ********

  10. Qt, классический, версии 1-3 (напишу в комментариях) 4 (1%)

    *****

  11. Свой вариант (напишу в комментариях) 4 (1%)

    *****

  12. Watcom / OpenWatcom C++ classes 2 (1%)

    **

Всего голосов: 526, всего проголосовавших: 387

★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 7)

Все плохо, контейнеры не нужны

Исказит опрос. Вот я на плюсах, естественно, не пишу, но не проголосовать за такое просто невозможно.

t184256 ★★★★★
()
Ответ на: комментарий от dataman

В wxWidgets не знаю, есть ли вообще контейнеры, а вот в Qt есть QtCore, очень удобное дополнение (а в чём-то и замена) к STL. И его вполне можно использовать без всего остального. «Основное-неосновное» — это субъективное.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от zx_gamer

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

t184256 ★★★★★
()

Добавь вариант «не пишу на плюсах»

Werenter ★★★
()

И ещё, то что сейчас в описании — стоит перенести в заголовок, так как на главной (откуда подавляющее большинство и голосует), описание не видно.

Werenter ★★★
()

Контейнерные библиотеки C++

Это пойдет на главную. Люди просто не поймут вопроса или поймут по-своему.

Какие контейнерные библиотеки вы бы хотели (а не вынуждены) использовать по работе?

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

А еще не все люди тут разбираются в разработке на C++ и в разработке вообще. И не все работают программистами. Предлагаю конкретизировать: «Какие контейнерные библиотеки вы бы хотели (а не вынуждены) использовать в разработке на C++?» Если интересует именно коммерческая разработка, добавить «коммерческой».

Описания опроса может и не быть. Оно нужно, чтобы помочь человеку сориентироваться в вариантах, когда редактурой их не прояснить. Тут, как мне кажется, с вариантами и так всё понятно.

Не пишу на C++

Спасибо за возможность тыкнуть галочку и посмотреть результаты.

Vidrele ★★
()

вы бы хотели (а не вынуждены)

Не пишу на C++

Нужен выриант «не хочу писать на C++».

CrX ★★★
()
28 января 2024 г.

использовать по работе

Получается, фрилансеры, пенсионеры, безработные и дети могут пропустить этот опрос. :)

dataman ★★★★
()

STL, конечно, то ещё удовольствие, но её наконец-то начали приводить в приличный вид (одни std::ranges чего стоят). А так Qt посовременнее

XMs ★★★★★
()
Ответ на: комментарий от XMs

STL, конечно, то ещё удовольствие, но её наконец-то начали приводить в приличный вид

Со строками (в общем случае мультиязычными) уже можно работать без боли? А то std::string по сравнению с тем же QString выглядел как просто char[] на стероидах.

Про u8string читал, но сам не тыкал, к тому же по работе я пока не могу себе позволить роскошь в виде С++20…

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от dataman

Ну у фрилансеров вполне себе работа. Вот разработку свободного ПО без денежного вознаграждения многие вполне могут счесть выпадающей за пределы опроса…

hobbit ★★★★★
()

STL, современный, С++11 и выше

А по удобству использования у меня на первом месте контейнеры в C#, c LINQ наперевес. Вот там это и правда удобно сделано.

Loki13 ★★★★★
()

Или стандартное, или что-то свое.

gns ★★★★★
()
Ответ на: комментарий от hobbit

Со строками (в общем случае мультиязычными) уже можно работать без боли?

Из того, что мне известно, всё по-прежнему: для хранения std::string годно, для всего остального — увы. Но есть std::string_view, который позволяет избавиться в коде от const char *, весь из себя constexpr, что тоже неплохо.

std::u8string использовать не доводилось

XMs ★★★★★
()

вопрос не понятен… каким образом классические фреймворки(библиотеки классов) типа qt или wxWidgets стоят рядом с солянкой навроде boost или stl.

а тема при этом про какие-то «контейнерные библиотеки».

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от alysnix

Контейнеры это классы Vector, List, Map и т.п. Вопрос про то, какие контейнеры больше всего нравятся.

zx_gamer ★★
() автор топика
Ответ на: комментарий от hobbit

Со строками (в общем случае мультиязычными) уже можно работать без боли?

Можно. Если не использовать Unicode. Когда строка известной длинны имеет неизвестный размер занимаемой памяти, проблемы обеспечены: невозможно без лишнего оверхеда обращаться к символам, ограничения для хранения в СУБД (если данные хранятся как байты, а не как текст) нужно выставлять с запасом в 4 или более раз, сложно обрабатывать строку (вспомните про 4 пробела) и т.п.

zx_gamer ★★
() автор топика
Ответ на: комментарий от dataman
    for_each( str.rbegin() , str.rend() , []( char32_t codepoint ){
      cout << codepoint;
    } );

Шикарный API! Метод reverse не осилили.

Ну почему все повторяют за ужасным STL?

zx_gamer ★★
() автор топика
Ответ на: комментарий от hobbit

Со строками (в общем случае мультиязычными) уже можно работать без боли?

Нет. std::codecvt deprecated в c++20, а альтернативы не завезли.

У нас в проекте используем QString и icu::UnicodeString (там где QString нельзя).

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 1)

Иногда пишу на С++ как на «С с классами». Контейнеры нужны, но задачек нет.

imul ★★★★★
()
Ответ на: комментарий от Werenter

Сишный массив это вообще std::array из C++11 и выше. Vector – динамический массив, List – список, а Map – ассоциативный массив (как правило на хэш-таблицах или красно-черных деревьях).

А массивы здесь ни при чем.

zx_gamer ★★
() автор топика
Ответ на: комментарий от bonta

Это пройдёт. Со временем любимые языки пропадают, все начинают казаться отвратительными, но менее отвратительными в конкретной задаче.

У C++ недостатки можно перечислять вечно, но лучшей альтернативы пока не появилось.

zx_gamer ★★
() автор топика

Не знаю что отвечать.

На С++ изредка (очень изредка) пишу что-то простое, но что такое контейнерные библиотеки не знаю.

Однако знаю что STL, которое в вариантах есть - это стандартная библиотека с++ (standard template library вроде), ей я немного пользовался но опять же не в курсе о каких контейнерах речь.

boost

Вот это точно не нужно.

firkax ★★★★★
()

Все плохо, нужно писать свое 10

кто эти нелюди велосипедисты? неужели у вас такого не было, что вот вы берёте какую-то либу в свой проект, может, даже единственную в своем роде, так, что выбирать не приходится. И вот автор этой либы написал не то, что свои контейнеры - он даже написал свои «базовые типы».

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

Любо-дорого глядеть, ну скажиже! (сарказм)

aol ★★★★★
()
Ответ на: комментарий от firkax

что такое контейнерные библиотеки не знаю

Классы, отвечающие за представление абстрактного типа данных, такие как Vector, List, Map, Set и т.п.

zx_gamer ★★
() автор топика

Мне бы очень хотелось поинтересоваться у благородных донов с большим отрывом проголосовавших за контейнеры STL-11 vs STL-98: что же Вам так резко понадобилось оттуда чего не было раньше? Как я понимаю опрос - речь же именно о контейнерах, а не языке.

bugfixer ★★★★
()
Ответ на: комментарий от bugfixer

Я не знаю (я сам голосовал иначе), но могу предположить, что из-за std::unordered_map, std::unordered_set, std::unordered_multimap, std::unordered_multiset, std::array, std::unique_ptr, std::shared_ptr, std::weak_ptr.

zx_gamer ★★
() автор топика
Ответ на: комментарий от zx_gamer

Метод reverse не осилили.

Так осиль и пришли им патч, поблагодарят.

dataman ★★★★
()
Ответ на: комментарий от zx_gamer

но могу предположить, что из-за …

С натяжкой, но принимается - это всё было в boost’е задолго до появления в STL.

Как к автору опроса: у меня ещё один вопрос есть - а где грань между «старым» boost’ом, и «новым»? Это конкретная версия, год, что-то ещё? Там на самом деле довольно много «вкусняшек» имеется: начиная с flat_XXX, и заканчивая multi_index.

bugfixer ★★★★
()
Последнее исправление: bugfixer (всего исправлений: 1)
Ответ на: комментарий от bugfixer

это всё было в boost’е задолго до появления в STL

но ведь boost не нужен.

eternal_sorrow ★★★★★
()

А где РОСО ( будь он трижды счастлив и четырежды весел )? Или это мимо?

pihter ★★★★★
()
Ответ на: комментарий от hobbit

std::string […] выглядел как просто char[] на стероидах.

но ведь такими и должны быть строки в си! ( это же все еще си ) :)

pihter ★★★★★
()
Ответ на: комментарий от imul

«С с классами»

а расскажите деревенскому, чем современный си++ отличается от сей с классами, которые я в институте проходил?

// я, конечно, кой чего знаю, но охота людей послушать

pihter ★★★★★
()
Ответ на: комментарий от zx_gamer

Со временем любимые языки пропадают, все начинают казаться отвратительными, но менее отвратительными в конкретной задаче

Ты живешь неправильно!! )

pihter ★★★★★
()

Автор из криокамеры вылез? Старый Boost, OpenWatcom – шо за дичь. stdc++, boost, qt-core, abseil, folly, poco сейчас первыми на ум приходят.

snizovtsev ★★★★★
()
Последнее исправление: snizovtsev (всего исправлений: 1)
Ответ на: комментарий от snizovtsev

Первые три в опросе есть. Poco — да, надо было включить, это упущение ТСа и моё как корректора (но есть «свой вариант»).

А вот про abseil и folly я, честно говоря, слышу впервые. Поделишься опытом?

hobbit ★★★★★
()
Ответ на: комментарий от dataman

Qt — кроссплатформенный набор инструментов и виджетов для создания приложений, который использует стандартный язык программирования C++

dimanao
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.