Напишите сначала, чтовы сделали для того, чтобы разобраться с этим вопросом и что конкретно не поняли. Например, читали ли вы книги по C++, статьи, пробовали ли писать программы? Если нет, то почитатйте. Просто так объяснять не имеет смысла, вы поймёте не больше, чем сейчас.
Если коротко, почему не остальные среды:
Eclipse -- медленная среда, больше проекты с кучей зависимостей даже проиндексировать нормально не может, памяти жрёт тонны;
Clion -- сыро всё еще, даже Qt и QML не поддерживаются нормально, ну и плюс на Java, а значит медленно;
VS -- без решарпера и пары плагинов всё печально, + свой местами особый компилятор, который разрешает многое из того что не стоит разрешать. Ну опять же это майкрософт... В тренде C# и управляемый C++.
Путей к ruby нет. Пропишите и заработает. А еще команды пишутся без $.
Кстати, под винду был какой-то rails installer, который рельсы нормально ставит.
Но всё-таки рекомендую linux и IDE Ruby Mine. Под виндой тяжко разрабатывать.
Мышка это позапрошлый век на самом то деле) Медленно, неудобно, много лишних движений. Для новичков и дизайнеров сгодится. Но, отвечая на ваш вопрос: да, базовые вещи с анимациями и все с цветами и выравниваниями, можно.
QstoN: qt creator вполне позволяет разрабатывать мышкой) Можно использовать и старый добрый qt widgets и qml. Второй вариант очень интересен.
И все бы это вы узнали за 10-15 минут использования гугла.
malinnyan: Лично мне ок. На ноуте я последние пару лет максимум по 1-2 часа что-то пишу, и то эпизодически (использую и дома и на работе стационарные компы). Иногда удалённо могу зайти что-то поправить... Для этих целей 12.5 меня устраивает. Как по мне, так ноут должен быть легким, с хорошим дисплеем и клавиатурой, быстрым и достаточно компактным. Всем этим требованим think pad удовлетворяет.
Возможно вам, для фронт-энд разработки и правда нужен минимум 15.6. Но тут увы точнее не скажу, никогда не чем связанным с веб разработкой серьезно не увлекался.
www.lenovoplaza.ru/catalog/109_thinkpad_x -- вот тут можно подобрать легкий и компактный think pad с хорошими характеристиками. Там и с ssd есть. Магазин просто для примера привёл, можно и подешевле найти. Я пользуюсь 12.5'' серии x220 (ssd правда сам поставил, благо там для этого надо один болтик выкрутить), всё просто отлично.
Я даже стесняюсь спросить, куда его еще можно было добавить, если я написал в начале, что именно методы должны быть const, а не возвращаемые методами значения... Томиком бы Страуструпа вас всех по голове до полного просветления) В Qt даже лезть не стоит без хорошего понимания C++.
phptrash: Ну это же не последовательность ваших действий. Последовательность действий может быть, например такой: "Я открою документацию и посмотрю как можно удалить один файл с помощью стандартной библиотеки языка Python (ну пусть он тут будет для примера). Я попробую удалить один специально созданный файл из каталога с программой. Вроде всё работает. Далее я попробую получить список всех файлов по определённому пути (для этого я снова почитаю документацию о том как это сделать средствами стандартной библиотеки). Вроде работает. Теперь я хочу чтобы в списке остались только имена файлов, которые соотвествуют определённой маске. Я открываю документацию... Вроде бы получилось. Теперь я проверяю что это работает (все нужные файлы и прада удаляются). Далее я думаю о том, как пользователь будет удобнее работать с моей программой (тут надо бы поинтересоваться и у пользователя): через GUI или через консоль. В зависмости от этого я выберу интерфейс. Далее я подумаю о формате входных данных, их валидации, обработке не стандартных ситуаций (ой, указанного каталога нет, ой, нет прав на удаление файла) и об обратной связи... Реализовывать всё это я буду по тому же алгоритму, что и удаление файлов...".
Это конечно же очень упрощённо, но даже отсюда можно понять: анализ проблеммы - постановка задачи - декомпозиция - прототипирование - детальная реализация - тестирование.
Если это сложно и непонятно, бросайте программирование и займитесь футболом как хобби)
phptrash: Уже неплохо. Теперь открыли вы редактор и собираетесь писать код. Приведите последовательность действий (возможно что-то нужно сделать до того, как вы начнёте писать код?). Код не нужен, просто что вы будите делать, как и в какой последовательности. Предположим, что как получить список файлов и как удалить какой-то файл вы на данный момент не знаете.
Всё что можно сделать с QHash есть тут: doc.qt.io/qt-5/qhash.html
Учитывая специфику работы контейнера, просто так взять и поменять ключ и значение местами нельзя. Можно имея значение получить по нему ключ, но за линейное время, а не за почти констатное.
Pavel K: Эм... Поиск по ключу структуре из двух полей (допустим int и string) потребует знания об обоих полях. Т.е. вы в любом случае не сможете зная только значение поле int, но не зная string, найти что-то в хэш-таблице с составным ключом.
find_if и есть прямой перебор. Сложность у алгоритма линейная. Но, задумайтесь, является ли именно это место узким. Важна ли вам производительность именно в этом месте. Вполне вероятно, что обычного find_if по вектору (важно что по вектору, я имею ввиду приимущества кеш-линии) будет достаточно. Ещё учтите, что индекс пересоздаётся не часто.
Pavel K: Если вы сделаете свой класс ключа, то вам скорее всего придётся сделать и свою функцию хеширования.
Модель должна общаться с внешним миром через индексы. Например у вьюхи есть какие-то выделенные индексы, вы с ними что-то можете сделать в модели (допустим удалить). Поиск тоже осуществляется по индексу. Иными словами, ничего снаружи не должно знать о внутренним представлении модели. Иначе могут получиться страшные костыли.
Для поиска по коллекции с разными критериями можно попробовать find_if с предикатом.