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

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

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

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

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

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

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

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

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

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

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

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

Не могу разобраться как передать корректно передать массив из функции в функцию - C++
//--------------------------------------------------------------------------- #pragma hdrstop ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
niXman
Эксперт C++
3135 / 1447 / 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
1
silent_1991
Эксперт С++
4964 / 3040 / 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, опять я опоздун

1
niXman
05.02.2012, 16:52
  #4

Не по теме:

бывает

0
nill
10 / 10 / 0
Регистрация: 16.08.2009
Сообщений: 417
05.02.2012, 18:57  [ТС] #5
niXman,
silent_1991,

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

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

Цитата Сообщение от nill Посмотреть сообщение
И что насчет типа данных массива произвольный тип данных функция не примет ?
под каждый тип данных нужно создавать свою функцию ?
Успокойтесь и переформулируйте вопрос. Я лично ничего не понял.
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
05.02.2012, 19:41 #7
Цитата Сообщение от nill Посмотреть сообщение
под каждый тип данных нужно создавать свою функцию ?
-Нет.
-Почему?
Цитата Сообщение от silent_1991 Посмотреть сообщение
Читайте про шаблоны.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2012, 19:41
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.02.2012, 19:41
Ответ Создать тему
Опции темы

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