Ответы пользователя по тегу Программирование
  • В чём разница указателей и ссылок?

    @alex-t
    Прогр. в команде rco.ru
    По сути - там и там адрес. Но ссылка указывает на уже существующий объект, а указатель может быть нулем, что иногда удобно. Указатель легче сделать невалидным, указывающим "в мусор", ссылку несколько сложнее, но и она не защищена от этого.

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

    На мой взгляд, в случаях, когда нет специального значения нулевого указателя, можно использовать ссылки.
    Ответ написан
    Комментировать
  • Таблица с разными типами данных в c++, как создать?

    @alex-t
    Прогр. в команде rco.ru
    Уже упоминавшийся boost::variant, если определен список возможных типов, в boost::variant удобно организовать общие оперции, специфицируя их для каждого типа.
    Если тип вообще не известен - boost::any (но так бывает уж совсем редко).
    Ответ написан
    Комментировать
  • Как получить дату и время из текста на python?

    @alex-t
    Прогр. в команде rco.ru
    Ого... Это в общем-то серьезный разбор текста, надо обычно не только время из текста выделить, но еще и найти к какому факту это упоминание времени относится, своими силами за несколько лет можно сделать... Наша фирма как раз ставит недешевую и достаточно нагружающую комп (код на С++) систему, которая это делает.
    Ну если на вход уже поступают только строчки времени, то задача обозрима. За несколько недель работы 90% строчек будут определяться, думаю :)
    Ответ написан
    1 комментарий
  • Как вызывать MultiByteToWideChar?

    @alex-t
    Прогр. в команде rco.ru
    Преобразование, скорее всего, правильное, если хотите проверить результат без проблем, смотрите в отладчике VisualStudio, а вот если с проблемами, то осваивайте консоль Windows. Там работает только такой извращенный способ:
    #include <windows.h>
    ....
    DWORD n;
    WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), L"фыва", 4, &n, 0);
    Ответ написан
    Комментировать
  • Указатель на указатель?

    @alex-t
    Прогр. в команде rco.ru
    Указатель на указатель часто встречается в "старых" интерфейсах С++ и в "просто С", когда надо в функции выделить память и что-то туда положить. Что-то типа
    int foo(int **bar)
    {
    	*bar = new int;
    	**bar = 123;
    	return 0; // код ошибки
    }

    В современном С++ лучше написать функцию вида
    std::unique_ptr<int> foo();
    а возможные ошибки реализовать на исключениях, так и память не утечет, и код ошибки при каждом вызове проверять не надо. Кроме того, возврат автоуказателя не вызовет у "вызывающего" кода вопросов, должен ли он потом освободить память полученную по указателю, или нет.
    Ответ написан
    Комментировать