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

Определить размерность массива по указателю на него - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ проверить решение http://www.cyberforum.ru/cpp-beginners/thread392670.html
Даны вещественные массивы A S.Для каждого массива определить количество элементов предшествующих первому отрицательному элементу массива. #include <iostream.h> #include <iomanip.h> // прототипы...
C++ В чем преймущество создания обьектов в куче? Знаю, что задаю глупый вопрос поэтому прошу матом не ругаться палками не бить. Я не понимаю в чем преимущества создания объектов и переменных в куче (кроме динамического распределения памяти). http://www.cyberforum.ru/cpp-beginners/thread392667.html
C++ Двумерный массив
1)Заполнить матрицу и вывести результат на экран 2)Заполнить матрицу и сохранить в 2 файла( текстовый file.txt и бинарный file.bin) 3)Прочитать матрицы из файлов и обе матрицы вывести на экран...
C++ Библиотека fltk и неразрешенные внешние элементы
Здравствуйте. Уже не знаю, куда обратится, пишу сюда. Извиняюсь, если вопрос не новый, но думаю что не тривиальный. Вобщем читаю книгу Страуструпа "Programming: principles and practice using C++",...
C++ Как правильно объявить fopen http://www.cyberforum.ru/cpp-beginners/thread392653.html
Доброго времени суток. наткнулся на некоторого рода проблемку. Не могу объявить fopen.. Описываю так как на MSDN написано , а компилятор ругается , мол смотрите объявление fopen; int main() {...
C++ Указать наименьшую длину числовой оси, содержащую заданные числа дана последовательность чисел а1,а2,...аn.указать наименьшую длину числовой оси, содержащую все эти числа. подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
27.11.2011, 05:18
Цитата Сообщение от Lupus Посмотреть сообщение
Собственно - можно ли как то различить массивы, поступающие в шаблон?
можно, но только статические:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <cstdlib>
 
template <class T, size_t rows, size_t cols>
void fill(T (&arr)[rows][cols])
{
    for(size_t i = 0; i < rows; ++i)
    for(size_t j = 0; j < cols; ++j)
        arr[i][j] = i + j + i * j + 1;
}
 
template <class T, size_t rows, size_t cols>
void dump(const T (&arr)[rows][cols])
{
    for(size_t i = 0; i < rows; ++i, std::cout << std::endl)
    for(size_t j = 0; j < cols; ++j)
        std::cout << arr[i][j] << '\t';
}
 
int main()
{
    int arr[2][3];
 
    fill(arr);
    dump(arr);
}
для динамических массивов нужно будет явно передавать размерность в функцию
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru