Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
#1

Можно ли передать в функцию массив произвольного размера ? - C++

05.02.2012, 16:37. Просмотров 913. Ответов 6
Метки нет (Все метки)

Хочу создать функцию для детекта количества элементов в массиве

C++
1
sizeof(array)/sizeof(array[0]);
и надо чтобы функция принимала произвольный размер массива
как сделать такую функцию на с++ ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2012, 16:37     Можно ли передать в функцию массив произвольного размера ?
Посмотрите здесь:

Можно ли создать функцию, принимающую двумерный массив произвольного размера? - C++
Добрый вечер всем. Я прочитал в книге в главе Передача двумерных массивов в функцию следующую вещь: Я написал маленькую программку с...

Передать в функцию массив без указания его размера - C++
Вопрос . какой массив мы можем передавать в функцию без указания элемента ?

Строковый массив произвольного размера - C++
Можно ли каким-то образом образом написать программу, в которой будет вводиться строковый массив произвольной длины? Если бы это был...

Динамический массив произвольного размера - C++
динамический массив заданного размера: int *massiv = new int а как организовать произвольного размера? спасибо.

Можно ли передать в функцию указатель на перегруженный оператор? - C++
Снова здравствуйте) Можно ли передать в функцию указатель на перегруженный оператор и как? Что-то типа: class f { ... ...

Можно ли в качестве параметра функции передать другую функцию? - C++
В ниже представленной программе функция returnMax находит в массиве максимальный элемент и возвращает его. returnMin - делает тоже самое,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
05.02.2012, 16:49     Можно ли передать в функцию массив произвольного размера ? #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
template<typename T, int N>
int func(const T(&)[N]) {
   return N;
}
 
int main() {
   int ia[4];
   char ca[7];
   
   std::cout << func(ia) << std::endl;
   std::cout << func(ca) << std::endl;
}
http://liveworkspace.org/code/e8235b...01d33cb0fd7bfe
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
05.02.2012, 16:51     Можно ли передать в функцию массив произвольного размера ? #3
nill, только вот таким хитрым способом и только для статических массивов. Размер динамического массива никак узнать не получится.

C++
1
2
3
4
5
template<typename Type, size_t Size>
size_t static_array_size(const Type (&)[Size])
{
    return Size;
}
http://liveworkspace.org/code/6f346e...a21396a9818779

Добавлено через 1 минуту

Не по теме:

niXman, опять я опоздун

niXman
05.02.2012, 16:52
  #4

Не по теме:

бывает

nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
05.02.2012, 18:57  [ТС]     Можно ли передать в функцию массив произвольного размера ? #5
niXman,
silent_1991,

C++
1
template<typename T, int N>
А что вот это значит что оно делает ?

И что насчет типа данных массива произвольный тип данных функция не примет ?
под каждый тип данных нужно создавать свою функцию ?
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
05.02.2012, 19:24     Можно ли передать в функцию массив произвольного размера ? #6
Цитата Сообщение от nill Посмотреть сообщение
А что вот это значит что оно делает ?
Читайте про шаблоны.

Цитата Сообщение от nill Посмотреть сообщение
И что насчет типа данных массива произвольный тип данных функция не примет ?
под каждый тип данных нужно создавать свою функцию ?
Успокойтесь и переформулируйте вопрос. Я лично ничего не понял.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2012, 19:41     Можно ли передать в функцию массив произвольного размера ?
Еще ссылки по теме:

Какими способами можно передать многомерные массивы в функцию? - C++
Возник вопрос, какими способами можно передать многомерные массивы в функцию??? Если не сложно, приведите парочку примеров :)

А можно в функцию, или перегруженный оператор передать ссылку на копию? - C++
И какой надо написать прототип?

Передать массив в функцию - C++
Здравствуйте. Помогите пожалуйста, я сделал задание: Программа считает сумму 4-х чисел и выводит ответ на экран #include &lt;iostream&gt; ...

Передать массив в функцию - C++
Здрасти. Знаю что таких тем навалом,но я что-то не понял. допустим есть массив mas я передаю его в функцию func(...). в этой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
05.02.2012, 19:41     Можно ли передать в функцию массив произвольного размера ? #7
Цитата Сообщение от nill Посмотреть сообщение
под каждый тип данных нужно создавать свою функцию ?
-Нет.
-Почему?
Цитата Сообщение от silent_1991 Посмотреть сообщение
Читайте про шаблоны.
Yandex
Объявления
05.02.2012, 19:41     Можно ли передать в функцию массив произвольного размера ?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru