• Как сделать реверс столбцов массива?

    Раз вопрос в теме про C++, то вас, наверное, не интересуют raw-массивы и raw-loops. Тогда можно так:
    #include <algorithm>
    std::vector<std::vector<int>> arr = {{0,1,2,3},{0,1,2,3},{0,1,2,3}};
    std::for_each(arr.begin(), arr.end(), [](auto& row){ std::reverse(row.begin(), row.end()); });
    Ответ написан
    Комментировать
  • Как получить данные из БД по двум значениям?

    longclaps
    @longclaps
    SELECT DISTINCT A.PARENT_ID
    FROM T AS A
      JOIN T AS B USING (PARENT_ID)
    WHERE A.PARAM = 200 AND B.PARAM = 300;

    Наверное DISTINCT лишнее - но из условий это неочевидно.
    Ответ написан
    1 комментарий
  • Как вывести адрес объекта в си?

    15432
    @15432
    Системный программист ^_^
    А зачем вы используете %n?
    Надо ведь тоже %p или хотя бы %x
    Ответ написан
    1 комментарий
  • Как совместить эти три запроса (SQL)?

    martin74ua
    @martin74ua Куратор тега MySQL
    Linux administrator
    триггер на after insert
    Ответ написан
    Комментировать
  • Как правильно применить функцию ко всем элементам двумерного вектора?

    myjcom
    @myjcom Куратор тега C++
    что то мудрено как то...
    for(auto &cellLine:matrix)
    {
        for(auto &cell:cellLine)
        {
            cell.showBody();
        }
    }

    foreach и лямбда-функции здесь явно лишние.
    про передачу по ссылке уже написал cppjunkie
    Ответ написан
    1 комментарий
  • Удаление данных из массива, в чем подвох?

    mitaichik
    @mitaichik
    Смотри: у List есть 2 метода remove:

    boolean remove(Object o);
    E remove(int index);

    Первый удаляет по объекту. Грубо говоря, он ищет в списке передаваемый объект, и если находит - удаляет его.
    Второй удаляет по индексу - то есть удаляет объект с индексом index.

    Обрати внимание на тип параметра: у первого это Object, у второго - скалярный int.

    В ipList.remove(id) ты передаешь переменную типа Integer (который, в свою очередь, наследуется от Object). Таким образом java вызывает первый метод. Он пытается найти этот объект в списке, а его там нет - у тебя же там Ip, и, в итоге, ничего не удаляет.

    Тебе надо приводить твой Integer к int ( с помощью id.intValue() или (int) id). Тогда java вызовет второй метод, который удаляет по индексу.

    Но! Скорее всего, в запросе ты будешь передавать не индекс, а иммено id класса Ip. Поэтому, на самом деле, решение с ipList.removeIf(i -> i.getId().equals(id)); является самым правильным. Ну, или использовать Map, как сказали выше.
    Ответ написан
    1 комментарий
  • Может ли произойти такая ситуация с исключениями?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Да, если швырять исключение из деструктора объекта, который был вызван во время обработки
    другого исключения.
    Ответ написан
    1 комментарий
  • Почему объект не ссылается сам на себя?

    rockon404
    @rockon404
    Frontend Developer
    Изначально переменной list присваивается значение null. Дале, каждую итерацию выполняется код:
    list = { value: array[i], rest: list };
    Сначала выполняется правая часть выражения, создается объект со свойством value принимающим значение элемента массива по индексу i, и свойством rest принимающим значение list, первую итерацию оно null:
    { value: 10: rest: null };
    Ну, а затем созданный объект присваивается переменной list. И так каждую итерацию.

    Простой пример как это работает:
    var x = 10;
    
    x = x + 5;

    Сначала вычисляется правая часть, затем происходит присваивание:
    x = 10 + 5;
    или:
    x = 15;

    А так можно сделать ссылку на себя:
    var obj = {       // создаем объект доступный по ссылке obj
      prop: 'example prop' 
    };
    
    obj.self = obj;  // добавляем в объект свойство self ссылающееся на сам объект
    Ответ написан
    1 комментарий
  • Как проверить на утечки памяти?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Больше трех лет пользуюсь инструментом Visual Leak Detector. Это тихий и неприхотливый инструмент, требующий соблюдения всего двух правил: вписать один include в одном cpp и собрать отладочную конфигурацию проекта.

    После завершения отлаживаемого процесса, VLD пишет в (файл/консоль/debug output) все найденные утечки со стеками выделения утекшей памяти. К отчету об утечке, помимо стека, еще добавляется HEX dump самого участка памяти, чтобы можно было на глаз сориентироваться, что за память утекла.
    А если утечек нет, VLD утешительно говорит что все нормально.

    Проект является открытым, доступен на github, стабильно развивается, выкладывается для современных версий Visual Studio и доступен из Extensions Manager самой студии.

    Больше всего эта штука помогает экономить нервы. Как и регулярный статический анализ, постоянный мониторинг утечек памяти позволяет в более спокойном режиме вводить серьезные изменения в базовых уровнях проекта.

    Ну и, безусловно, всегда есть valgrind memcheck, который по своей сути является sandbox-ом памяти и с радостью покажет тебе не только утечку, но и любой heap corruption, любое неправомерное обращение к памяти, которое ты будешь просто не в состоянии отловить руками или глазами.
    Насколько я помню, за последние 2-3 года valgrind так и не стал кроссплатформенным.
    Ответ написан
    4 комментария
  • Подкиньте пару хороших книг по Qt (С++)

    EXL
    @EXL
    Энтузиаст
    1. Бланшет, Саммерфилд - Qt4 Программирование GUI на С++. 2ed. - 2008
    2. Шлее Макс - Профессиональное программирование на C++. +CD. Qt 4.8. (В подлиннике) - 2012
    3. Марк Саммерфилд - Qt Профессиональное программирование (High tech) - 2011
    4. Андрей Боровский - Qt4.7+. Практическое программирование на C++ - 2012
    5. Юрий Земсков - Qt4 на примерах

    Первая книга от создателей Qt, в первых главах рассмотрено создание приложения для работы с таблицами (этакий мини Excel). Так что в прямом смысле за день можно разобраться во всех тонкостях создания подобных приложений.
    Вторая книга от известного в Qt-сообществе программиста, очень подробный и толстый справочник по виджетам, их описание и примеры использования. Имеется несколько глав по JavaScript/QML/QtQuick. Однозначный Must Have.
    Третья книга от одного из программистов, разрабатывающих Qt. В ней рассказано о профессиональной разработке приложений. В чем-то является продолжением первой книги.
    Четвертая книга от отечественного программиста, рассмотрены в основном принципы разработки сложных приложений. Отдельный разделы посвящены программированию трехмерной и интерактивной графики, баз данных, многопоточных приложений и созданию собственных виджетов.
    Пятая книга на мой взгляд уже устарела. Её вполне заменяет Макс Шлее.

    Это все книги по Qt 4.X.X на русском языке, известные мне (не считая редакций). Если кто-то знает ещё, пожалуйста отпишитесь.

    По Qt 5 книг пока нету. Макс Шлее сказал, что начнет работу над новой книгой с выхода версии Qt 5.2. По поводу книг для Qt 5 см. ответ ниже. Но не стоит забывать, что у Qt документация одна из самых лучших и вполне способна заменить книгу. Поэтому настоятельно рекомендую пользоваться Qt Assistant при возникновении затруднений.

    По C++ рекомендую конечно классику:
    Прата С. - Язык программирования С++. Лекции и упражнения - 2011
    Ответ написан
    1 комментарий
  • Что значит "возвращение" в python?

    @vashaaa
    Юх с горы
    Функция это такой автомат. Ну знаешь к примеру с газировкой или музыкой. Есть автоматы с газировкой , ты им денюжку (переменные ) они тебе газировку, это пример функции которая что то возвращает. Есть автоматы с музыкой , вроде ничего не возвращают но играют музыку. Это пример функции без возвращения, ты вызываешь эту функцию она что то делает но ничего тебе не возвращает. Ещё есть игровые автоматы, это как вызывать функцию которая нихрена не делает и нихрена не возвращает.
    Ответ написан
    4 комментария
  • Пример типичной задачи по JS для junior/middle front-end'a. Какая она?

    Maksclub
    @Maksclub
    maksfedorov.ru
    — Ребята, новый сайт запускаем, API почти готов, делаем на Реакте
    — Нужно дублировать морду одного из проектов, только чуть меняем дизайн, сделан на Backbone (и не спрашивай), тут еще почему-то не выводится у одного блока инфа
    это моя реальная задача была, я бек :)
    — Нужно доделать раздел в админке (сделана на JQuery), с выводом карты и календаря с библиотекой fullcalendar js
    Ответ написан
    2 комментария
  • Что и на чём программировать в 13 лет?

    @Puchryamba
    Студент-программист
    Как мне показалось, грамотного ответа дано ещё не было. В 13 лет хочется конкретики, а тут всё вода типа "изучай какую-то абстрактную ерунду", а что конкретно для этого делать - непонятно.
    Помню, как сам примерно в таком же возрасте просто не знал, куда обратиться за помощью, за тем, чтобы подтолкнули. Судя по описанному, автор сейчас подкован в программировании лучше, чем я в том же возрасте.
    Так вот, если бы я вернулся в 13 лет, в первую очередь я участвовал бы во всевозможных олимпиадах. Но это не олимпиады а-ля Кит или школьные (или какие там ещё бывают?), которые проводятся раз в год, а всевозможные онлайн-олимпиады, проводящие соревнования каждую неделю. Это ко всему прочему ещё и интересно! И гораздо разнообразнее, чем просто читать книжку по олимпиадному программированию.
    Хороший сайт с олимпиадными задачами на русском - Codeforces.com. Для решения допускаются все самые популярные языки, так что с теперешними вашими знаниями можно сразу включаться в состязания.
    По теории хорошо бы изучать различные структуры данных и алгоритмы (да, тут я сам говорю "изучать какую-то абстрактную ерунду" xD). К сожалению, по этому поводу не могу ничего посоветовать кроме Никлауса Вирта "Структуры данных и алгоритмы", и то эту книгу нам советовала препод в вузе, а сам я её так и не открыл :) Но в целом вектор такой: изучать всякие списки, очереди, стеки, матрицы (это если ещё не знаете о них), устройство всевозможных деревьев (для начала бинарных деревьев поиска), классно было бы получить базовое представление о теории графов (о которой я слыхом не слыхивал до университета). А также различные алгоритмы сортировки, вещи наподобие алгоритма Кнута-Морриса-Пратта и многое-многое. Если всё-таки знакомиться с теорией графов, то там также имеется несметное количество алгоритмов.
    Но совет: не стоит зачитываться теорией, все полученные знания необходимо применять на практике. Идеально: поставить себе какую-нибудь задачу, например написание того же калькулятора, но не просто +, -, *, /, а с учётом больших чисел (тут уже надо будет самому написать структуру, поддерживающую очень большие числа), с возможностью задания переменных (для их хранения можно использовать ассоциативные массивы), с учётом прямой/обратной польской записи выражения (узнать что это за записи такие и реализовать их) и со всевозможными другими фичами. Причём важно не ошибиться: задача должна быть такая, что вы не знаете на 100% её реализацию, но примерное смутное представление имеете.
    И очень важно углубить свои познания в математике. То, что даётся как математика в школе - на самом деле мало чего стоит. Ближе к старшим классам конечно лучше, но с вузом не сравнить.
    Что касается поступления в вуз: на данный момент (во всяком случае два года назад было так :D) ЕГЭ по информатике очень лёгкое, я думаю вы можете уже сейчас открыть задания (их можно взять например на reshuege.ru) и с лёгкостью решить большую часть. Так что при нормальной подготовке нет ничего невероятного в том, чтобы сдать на 100 баллов. Другое дело математика - её надо подтягивать и подтягивать. Но вообще: не знаю как обстоит дело в Москве, Санкт-Петербурге и т.п., а у нас в Краснодаре поступить было не сложно - куда сложнее удержаться. На студента в первую сессию валится много-много новой информации. Но об этом думать вам пока рано =)
    Ну и да, конечно русский язык тоже надо знать: баллы по русскому также влияют на поступление.
    Выше дали правильный совет изучать физику: во многих вузах на программистские специальности в качестве третьего экзамена рассматривают не информатику, а физику. Да и вообще знание физики лишним никак не будет.
    И естественно без английского тоже никак, стоит попробовать читать про различные технологии программирования прямо на английском - сначала сложно, но вскоре становится довольно легко.
    Получилось длинно, но надеюсь, что максимально подробно =)
    Ответ написан
    6 комментариев
  • Как писать на андроид в notepad?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    На Хабре есть статья об этом - "Пишем, собираем и запускаем HelloWorld для Android в блокноте".
    Ответ написан
    1 комментарий