Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Строковый параметр или много параметров 
:(
    Опции темы
 
Что вы выберите?
foo("host: 192.168.0.2:3456, user=i pass=***, etc"); [ 4 ]  [23.53%]
foo("192.168.0.2", "3456", "i", "***", "etc"); [ 13 ]  [76.47%]
Всего проголосовавших: 17
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
Lazin
Дата 6.12.2008, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



я глядя на этот код
Цитата(mes @  5.12.2008,  19:02 Найти цитируемый пост)
login (const string& host, const string& identify_data, const string& etc)

представлял себе std::string smile 
PM MAIL Skype GTalk   Вверх
mes
Дата 6.12.2008, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Lazin @  6.12.2008,  00:36 Найти цитируемый пост)
представлял себе std::string smile  

ну и что это меняет ? уж не то, что не хватает ..c_str() ? надеюсь все таки, что сомнения вызвало что то другое,  ибо нигде не говорится, что упомянутая реализация класса объекта sock принимает что то иное, нежели string  smile

Добавлено через 7 минут и 46 секунд
Цитата(vinter @  5.12.2008,  23:50 Найти цитируемый пост)
народ вы на названия переменных не заморачивайтесь, это просто пример smile 

тогда ответить на Ваш вопрос невозможно, потому что выбор способа зависит от контекста конкретной задачи..


--------------------
PM MAIL WWW   Вверх
DominiK
Дата 6.12.2008, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 11.3.2007
Где: Россия, Омск

Репутация: нет
Всего: нет



Не тема, а сплошной творческий онанизм.
Звыняйте - не здержался  smile 
PM MAIL   Вверх
vinter
Дата 6.12.2008, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(mes @  6.12.2008,  02:52 Найти цитируемый пост)
тогда ответить на Ваш вопрос невозможно, потому что выбор способа зависит от контекста конкретной задачи..

это почему это? название парметров дела не меняет, дело в передаче параметров а не их последущей обработке. Главное что внутри функции они используются раздельно и все. Остальное не важно.


--------------------
Мой блог
PM MAIL WWW   Вверх
mes
Дата 6.12.2008, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(vinter @  6.12.2008,  09:13 Найти цитируемый пост)
название парметров дела не меняет, дело в передаче параметров а не их последущей обработке.. 

Само название дела не меняет,  но смысл несенный параметром для конкретной функции меняет.  

Цитата(vinter @  6.12.2008,  09:13 Найти цитируемый пост)
Главное что внутри функции они используются раздельно и все. Остальное не важно. 

Это далеко не главное. Каждый параметр является самостоятельной сущностью и от того насколько правильно Вы ее определите будет зависть логичность архитектуры вашей функции. Некоторое время назад поднимался вопрос, что лучше передавать : много одиночных параметров или одну структуру ?
Я придерживаюсь мнения, ответ лежит по середине, т.е
1  я не согласен с упаковкой в структуру, ради упаковки
2. я не согласен с расскрытой передачей, т.е когда один смысловой параметр представлен набором одиночных.
т.е. Кесарю - кесарево.

От вашего вопроса отличается только тем, что у Вас структура является представлена строкой. Поэтому смотрите в суть параметра и будет Вам ответ . smile


P.S. Все вышенаписанное ИМХО.



--------------------
PM MAIL WWW   Вверх
vinter
Дата 6.12.2008, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



mes, для меня ответ очевиден, я поэтому не создал вопрос , а создал голосование, так что я не ищу ответа, мне интересны мнения. Спасибо всем отвечающим.


--------------------
Мой блог
PM MAIL WWW   Вверх
MAKCim
Дата 6.12.2008, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



первый вариант
парсинг не сложный, если строка не хаотична, а имеет определенную структуру, к примеру
"<key1>=<value1>;<key2>=<value2>"



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
jonie
Дата 6.12.2008, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



парсинг мб и не сложный... вона в sendmail тоже не сложный парсинг, а багов было и есть тонны... 
где парсинг - там всегда гемморой. Упаковать в общем в структуру и передавать ссылку на ее - мой выбор.
Во вторых будет делаться давжды работа в первом варианте (часто) : сначала склейка, потом парсинг. зачем?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
JackYF
Дата 6.12.2008, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



При прочих равных - вариант №2.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
MAKCim
Дата 6.12.2008, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(jonie @  6.12.2008,  14:04 Найти цитируемый пост)
где парсинг - там всегда гемморой

не согласен, спорить не буду


Цитата(jonie @  6.12.2008,  14:04 Найти цитируемый пост)
Упаковать в общем в структуру и передавать ссылку на ее - мой выбор.

в таком случае мы сделаем функцию зависимой от конкретных параметров
т. е, к примеру есть стек функций L1->L2->L3->...->Ln
L1 генерирует набор параметров, которые последовательно должны быть обработаны L2, L3, ..., Ln
что лучше
делать толстую структуру со всеми возможными параметрами или передавать строку, из которой каждая функция выберет нужные параметры?
кроме того, а если каждый  следующий уровень динамически генерирует параметры для следующего уровня?
тогда L1 должна невольно знать об их существовании, а это лишняя связанность

Добавлено через 2 минуты и 9 секунд
Цитата(jonie @  6.12.2008,  14:04 Найти цитируемый пост)
Во вторых будет делаться давжды работа в первом варианте (часто) : сначала склейка, потом парсинг. зачем? 

унификация представления



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
mes
Дата 6.12.2008, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(MAKCim @  6.12.2008,  15:00 Найти цитируемый пост)

не согласен, спорить не буду

согласен, парсер не такая деталь которую стоит бояться. Другой вопрос что статическая проверка , гораздо безопаснее, чем простое динамическое использование данных,
но иногда бывает необходимым использование динамических структур. Если такой подход преобладает, то Cpp/С ИМХО неправильно выбран как целевой язы


Цитата(MAKCim @  6.12.2008,  15:00 Найти цитируемый пост)
что лучше
делать толстую структуру со всеми возможными параметрами или передавать строку, из которой каждая функция выберет нужные параметры?


В чистом виде оба варианта плохи.


Это сообщение отредактировал(а) mes - 6.12.2008, 16:44


--------------------
PM MAIL WWW   Вверх
vinter
Дата 6.12.2008, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



если уж заговорили о структурах: если у нас параметры вида 
Цитата(MAKCim @  6.12.2008,  14:12 Найти цитируемый пост)
"<key1>=<value1>;<key2>=<value2>"

то, по моему, идеальный вариант параметров ф-ии это vector<pair<string,string>>. И никакие парсинги и структуры даром не нужны...


--------------------
Мой блог
PM MAIL WWW   Вверх
Lazin
Дата 6.12.2008, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(vinter @  6.12.2008,  17:24 Найти цитируемый пост)
то, по моему, идеальный вариант параметров ф-ии это vector<pair<string,string>>. И никакие парсинги и структуры даром не нужны... 

тогда уж лучше std::map<std::string, std::string>  smile 
PM MAIL Skype GTalk   Вверх
mes
Дата 6.12.2008, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(vinter @  6.12.2008,  17:24 Найти цитируемый пост)
то, по моему, идеальный вариант параметров ф-ии это vector<pair<string,string>>. И никакие парсинги и структуры даром не нужны... 

а сохранение в файл ? a передача данных между инстанциями ?  smile  все зависит от требований задачи )

Это сообщение отредактировал(а) mes - 6.12.2008, 18:11


--------------------
PM MAIL WWW   Вверх
vinter
Дата 6.12.2008, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(Lazin @  6.12.2008,  18:56 Найти цитируемый пост)
тогда уж лучше std::map<std::string, std::string>

не, вдруг сортировка лишнее?

Цитата(mes @  6.12.2008,  19:11 Найти цитируемый пост)
а сохранение в файл ? a передача данных между инстанциями ?

и что не так?


--------------------
Мой блог
PM MAIL WWW   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0620 ]   [ Использовано запросов: 24 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.