Модераторы: 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
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
mes
Дата 6.12.2008, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(vinter @  6.12.2008,  18:22 Найти цитируемый пост)

и что не так? 


про хранение :  загрузить данные в ассоциативный контейнер без парсера проблематично  smile .
про передачу: то что реализация вектора (и других стл контейнеров) компиляторно зависимая и передавать их как параметры другой инстанции (из под другого компилятора) чревато сбоем.

Цитата(Lazin @  6.12.2008,  17:56 Найти цитируемый пост)
И никакие ... структуры даром не нужны... 

А заодно лишаемся статического контроля типов  smile 

P.S. у любого способа есть свои недостатки и преимущества, и нужно просто стараться найти оптимальное решение.  smile 



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


Explorer
****


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

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



Цитата(mes @  6.12.2008,  19:37 Найти цитируемый пост)
про хранение :  загрузить данные в ассоциативный контейнер без парсера проблематично  

моя твоя не понимать, у нас есть данные. Отдельно каждая строка, зачем нам парсер?

Цитата(mes @  6.12.2008,  19:37 Найти цитируемый пост)
про передачу: то что реализация вектора (и других стл контейнеров) компиляторно зависимая и передавать их как параметры другой инстанции (из под другого компилятора) чревато сбоем.

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


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


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

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



Цитата(vinter @  6.12.2008,  18:47 Найти цитируемый пост)
если я не ошибаюсь, то по стандарту вектор обязан лежать одним куском в памяти

не ошибаешься
точнее не вектор, а буфер, на который он показывает

Цитата(vinter @  6.12.2008,  18:47 Найти цитируемый пост)
, а значит ни о каких сбоях речи быть не может.

ошибаешься

в стандарте, к примеру, не указано, что должно идкт первым - указатель на буфер в куче или размер буфера


vinter, вот видишь, что такое нечетко заданный вопрос smile
уже и в проблемы с либами полезли smile

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


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


Explorer
****


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

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



Цитата(Alek86 @  6.12.2008,  19:53 Найти цитируемый пост)
в стандарте, к примеру, не указано, что должно идкт первым - указатель на буфер в куче или размер буфера

ну это все решаемо, просто пишем буфер вектора в другой инстанс. С такой стороны получется действительно строка  будет проще(при условии, что там парсинг простой).


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


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


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

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



Цитата(vinter @  6.12.2008,  18:47 Найти цитируемый пост)

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

Сплошным куском должен лежать не объект-вектор, а данные которые он хранит.  smile 
Также стандартизированы основной набор методов, однако способ реализации не оговаривается.

как Вы думаете, что получится если описания векторов в двух программах (которые обмениваются данными в виде объектов типа вектор)  будут незначительно отличаться ?
например так : 
Код

class vector
{
...
  size_t    m_size;
  T  *data;
};

class vector
{
...
  T  *data;
  size_t    m_size;
};

 smile

Добавлено @ 19:23
Цитата(vinter @  6.12.2008,  19:12 Найти цитируемый пост)
ну это все решаемо, просто пишем буфер вектора в другой инстанс. 

а никто и не говорит, что не решаемо..и не обязательно переписывать весь буфер.. 
просто было продемонстрировано, что
Цитата(mes @  6.12.2008,  18:37 Найти цитируемый пост)
P.S. у любого способа есть свои недостатки и преимущества, и нужно просто стараться найти оптимальное решение.  smile 

и подходить к делу осознанно  smile 


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


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


Explorer
****


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

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



mes, согласен smile
P.S и давай на ты, не привычно в интернете и на Вы...


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


Опытный
**


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

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



А про вариант сделать функцию перегруженной, предоставив более одного способа передачи данных, чего-то никто не вспомнил smile 
PM MAIL   Вверх
Torsten
Дата 8.12.2008, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 10.6.2008
Где: Pskov

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



я за вариант
Цитата(Alek86 @  5.12.2008,  17:28 Найти цитируемый пост)
"создам структуру(класс)"


передавать строку - это точно геморой.  В дополнение к тому что ее распарсить нужно, нужно так же проверить все ли параметры в ней были. Эта фактически изменит сигнатуру функции foo - т.е. уже может вернуть ошибку (не удалось распарсить), и там где функцию вызывали эту ошибку уже надо как-то обрабатывать (по хорошему конечно, имбо кодеры конечно никаких проверок не делают smile.

Это сообщение отредактировал(а) Torsten - 8.12.2008, 19:21
--------------------
We have no begining, we have no end. We are infinite.
PM MAIL   Вверх
Страницы: (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.0544 ]   [ Использовано запросов: 24 ]   [ GZIP включён ]


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

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