powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / проблема в коде С++
8 сообщений из 33, страница 2 из 2
проблема в коде С++
    #39424508
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пётр СедовКстати, tuple -- аналогичное зло, означает «программисту было лень придумать имена полей».Не всегда, иногда бывает, надо вернуть пару-тройку значений из функции(хотя тут можно долго спорить про архитектуру). Если это делается один раз, нет смысла заводить под это структуру, да и вообще это не всегда логично. Я бы ещё хотел вообще новый синтаксис, когда принимаемые значения можно было бы слева от функции через запятую указать
tuple тут не совсем красиво смотрится, передача переменных в функцию для возвращаемых значений тоже смотрится не очень, потому что:Пётр СедовОпять же, облегчает написание кода, но усложняет его чтение.наоборот же, возвращаемые значения слева, входящие справа. Без tuple приходится все их в куче писать справа (до сих пор так и делаю)
...
Рейтинг: 0 / 0
проблема в коде С++
    #39425081
Пётр Седов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbиногда бывает, надо вернуть пару-тройку значений из функцииДа. В стандартной библиотеке C++ такое встречается:
Код: plaintext
1.
2.
3.
div_t dr = div(item_index, cols_count);
int row = dr.quot;
int col = dr.rem;

Код: plaintext
1.
2.
3.
4.
5.
6.
typedef map<string, int> items_t;
items_t items;
pair<items_t::iterator, bool> ir = items.insert(items_t::value_type("green", 3));
if (ir.second) { // и что тут проверяется?
  ...
}

И какой код понятнее?
...
Рейтинг: 0 / 0
проблема в коде С++
    #39425279
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне несколько притит такая логика "ага, привело к ошибке - запретить!". это глупо. я люблю с++ именно за то, что такого здеть нет. вот только за последствия несешь ответственность сам. проблемы нужно решать головой, а не перекладывать свою работу на компилятор.
к тому же такой подход не решает проблем. если есть возможность написать код, есть возможность написать плохой код.
если кто-то не хочет думать, ему придется огребать от своего кода. по коду сразу видно какого уровня специалист.
...
Рейтинг: 0 / 0
проблема в коде С++
    #39426202
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пётр СедовИ какой код понятнее?первый, но во втором все необходимые объявления приведены, а в первом описание структуры пропущено :)
ещё понятнее как-нибудь так:
Код: plaintext
1.
int {row, col} = div(item_index, cols_count);

:)
alexy_blackпроблемы нужно решать головой, а не перекладывать свою работу на компилятор.при этом, что ещё нравится в плюсах: если хочется, то можно и переложить работу на компилятор.
...
Рейтинг: 0 / 0
проблема в коде С++
    #39426531
Пётр Седов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbПётр СедовИ какой код понятнее?первый, но во втором все необходимые объявления приведены, а в первом описание структуры пропущено :)Хорошо, на одну строку кода больше:
Код: plaintext
1.
struct div_t {int quot, rem;};


CEMbещё понятнее как-нибудь так:
Код: plaintext
1.
int {row, col} = div(item_index, cols_count);

:)При такой записи нет явного указания, что row -- частное, а col -- остаток. В случае div очевидно, что она возвращает пару {частное, остаток}, а с другими функциями может быть неочевидно.
...
Рейтинг: 0 / 0
проблема в коде С++
    #39426861
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbalexy_blackпроблемы нужно решать головой, а не перекладывать свою работу на компилятор.при этом, что ещё нравится в плюсах: если хочется, то можно и переложить работу на компилятор.я за то, чтобы один раз решить, в каком-нибудь классе, и использовать его :)
...
Рейтинг: 0 / 0
проблема в коде С++
    #39426870
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbtuple
кортеж
...
Рейтинг: 0 / 0
проблема в коде С++
    #39428531
Common Lisp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivибо использовать целый со знаком индекс, либо изменить условие и в теле цикла использовать i-1

Костыли-костылики.

А ведь проблема итерации с конца к началу для беззнаковых давно решена. Безо всяких уродливых i-1.
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / проблема в коде С++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]