Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.08.2015, 04:53   #21
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Не совсем понял это.

А так, variadic templates тоже подойдут, но они только с C++11.

Но теперь самое главное, что все же лучше использовать, variadic templates или класс vector?
1. Т.е. если известно, что все аргументы типа int, то можно сделать шаблон менее абстарктным (т.е. заставить принимать только инты, а не любой тип).

2. Вектор это всегда выделение памяти в куче, следовательно долго. Здесь же всё известно на этапе компиляции (хотя код ваш, уверенным быть не могу), вектор здесь не нужен. Шаблоны - хороший вариант (но не самый простой).
220Volt вне форума Ответить с цитированием
Старый 12.08.2015, 05:00   #22
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Цитата:
Сообщение от 220Volt Посмотреть сообщение
Шаблоны - хороший вариант (но не самый простой).
Согласен, что не самый простой, сам пока не могу понять, как заставить его принимать только int. Буду разбираться, спасибо.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 12.08.2015, 07:13   #23
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
что все же лучше использовать, variadic templates или класс vector?
Это зависит от того, чего хотим добится, начните с этого.
waleri вне форума Ответить с цитированием
Старый 12.08.2015, 10:04   #24
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Тип параметров одинаковый? Число параметров известно на этапе компиляции? Что Вам нужно в результате?

Можно, например, еще std::initializer_list использовать.
Croessmah вне форума Ответить с цитированием
Старый 12.08.2015, 15:50   #25
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
Тип параметров одинаковый?
Да, int.
Цитата:
Сообщение от Croessmah Посмотреть сообщение
Число параметров известно на этапе компиляции?
Да.
Цитата:
Сообщение от Croessmah Посмотреть сообщение
Что Вам нужно в результате?
Функция, в которую можно будет передавать разное количество аргументов. Внутри функция должна определить какое количество аргументов передали, и обработать их.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 12.08.2015, 21:35   #26
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Понимаю, что можно самому передавать количество, но в данном случае было бы удобнее, чтоб это определялось автоматически.
Но я бы не стал подобное применять, т.к. аргументы могут быть переданы и не через стек.
Дейстиельно, как ни странно но параметры вызываемой функции передаются через стек. Да в этом есть и примущества и недостатки. Преимущество в том, что вункция недоступна для несанционированного использования. В этом её и ндостаток. К стеку, прото-так не доступиться (с обывательской точки зрения). Лезть в системную память, не советую. Хлопот огребёте, по самое - нехочу.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 12.08.2015, 22:05   #27
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

А что мешает данные хранить в глобальном массиве и вызывать функцию передавая указатель и размер? Это кстати и быстрее будет.
waleri вне форума Ответить с цитированием
Старый 12.08.2015, 22:55   #28
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
данные хранить в глобальном массиве
Заполнять такой массив будет неудобно, да и если будет параллельное выполнение этого кода, тогда возникнуть проблемы.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 12.08.2015, 23:33   #29
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Этот массив будет заполнятся во время компиляции, разве нет?
Во всех ваших примерах - константы.

И я так и не понял, чем вам не понравился вариант одной функции с разным числом параметров, например от 1 до 10... А если вам понадобятся больше, то едва ли вызов функции будет лучшим решением.

Поэтому я и спрашиваю, какова конечная цель...
waleri вне форума Ответить с цитированием
Старый 12.08.2015, 23:49   #30
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Тогда нужно будет создавать на каждый вызов функции свой глобальный массив?
Цитата:
Сообщение от waleri Посмотреть сообщение
Поэтому я и спрашиваю, какова конечная цель...
Конечная цель - это, чтоб было удобно и не в ущерб по скорости выполнения кода.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить функцию, подсчитывающую количество слов списка, которые начинаются и оканчиваются одной и той же буквой Dark Illusion Паскаль, Turbo Pascal, PascalABC.NET 0 18.03.2013 23:26
узнать количество значений которые вернул SimpleDataSet Kreadlling БД в Delphi 1 13.04.2012 09:47
как прервать выполнение всех функций которые были запущены setTimeout Arassir JavaScript, Ajax 1 20.10.2011 16:20
узнать количество слов, которые содержат букву "у". C++ kop Помощь студентам 0 14.05.2011 09:12
как работать с компанентами, которые были созданы программно? morgonXak Компоненты Delphi 6 20.12.2010 18:38