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

Размер массива при передачи в функцию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Потоковое Чтение и запись в файл http://www.cyberforum.ru/cpp-beginners/thread911573.html
Всем привет. Подскажите пожалуйста с помощью каких функций и библиотек лучше всего производить запись и чтение из файла, + подскажите как сделать редактирование той же самой записи в файле. Заранее...
C++ Отловить сообщение о завершении потока(треда) Привет! Студия постоянно сигнализирует в окне вывода о завершении разных потоков в программе. Допустим я сам создаю один поток, который довольно сложен и в нем используется куча разных длл. Так вот... http://www.cyberforum.ru/cpp-beginners/thread911559.html
Найти ошибку C++
Не могу найти ошибку в программе, не ищет букву "а", в некоторых случаях подсчет не правильный. Программа должна найти и подсчитать в строке кол-во букв "а" в первом слове. #include<conio.h>...
(SOS) Как добавить координаты элемента массива в стек? C++
Дяди программисты, спасайте новичка! Задача такая: построить лабиринт(матрицу) из 1 и 0 (идти можно только по единичкам) и сохранить в стек путь. Я всё примерно придумал как сделать, но не могу...
C++ Ошибка при передаче в функцию указателя на элемент массива http://www.cyberforum.ru/cpp-beginners/thread911533.html
#include "stdafx.h" #include <iostream> #include <ctime> #include <cstdlib> #include <cmath> const int n = 20; int main() { srand(time(0));
C++ Ряд Тейлора Помогите плиз разложить функцию arsh(x) в ряд Тейлора. Мучаюсь пол месяца.Спасибо. подробнее

Показать сообщение отдельно
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
25.06.2013, 22:36
Цитата Сообщение от Catstail Посмотреть сообщение
Но это неинтересно, поскольку хочется передавать массивы переменных размерностей.
Если хочется чтобы одна и та же функция получала нечто, что можно представить в одном случае как N-мерный массив, а в другом случае как M-мерный, то надо либо заводить свой "умный" класс массива переменной размерности, либо передавать указатель на начало памяти, а дальше, скажем, список длин по каждой размерности. Т.е. имитация многомерности на одномерном массиве. Такой вот изврат набросал:
Кликните здесь для просмотра всего текста
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <vector>
#include <numeric>
 
int p( int k, const std::vector<int>& dims )
{
    int ret = 1;
    for( int i = dims.size()-1; i>k; --i )
    {
        ret *= dims[i];
    }
    return ret;
}
 
void printArray( const std::vector<int>& a, const std::vector<int>& dims )
{
    for( int i=0; i<a.size(); ++i )
    {
        for( int j=0; j<dims.size(); ++j )
        {
            std::cout << "[" << (i / p(j,dims)) % dims[j] << "]";
        }
        
        std::cout << " = " << a[i] << std::endl;
    }
    
    std::cout << "---------\n";
}
 
 
int main() {
 
    std::vector<int> v(24);
    
    std::iota( v.begin(), v.end(), 0 );
    
    std::vector<int> s1 = {24};
    printArray( v, s1 );
    
    std::vector<int> s2 = {4,6};
    printArray( v, s2 );
    
    std::vector<int> s3 = {2,3,4};
    printArray( v, s3 );    
 
    std::vector<int> s4 = {3,2,2,2};
    printArray( v, s4 ); 
 
    return 0;
}

https://ideone.com/YIoQAj
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.