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

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

Войти
Регистрация
Восстановить пароль
 
vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
#1

Преобразую трехмерный массив в одномерный и обратно - C++

19.02.2012, 10:37. Просмотров 942. Ответов 0
Метки нет (Все метки)

Доброго всем времени суток

пытаюсь преобразовать трехмерный массив в одномерный вектор, затем удалить 1-ю строку (плоскость) в этом векторе и полученное записать обратно в трехмерный массив, вот на последнем этапе и не пашет.....


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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <iostream>
#include<vector>
#include <stdlib.h>
 
using namespace  std;
 
 
const int n = 4, m = 2, k=2;
 
 
int main( int argc, char* argv[] )
{
 
int irecv[n][m][k];
 
 
       for (int i = 0; i < n; i++)  
       {
            for (int j = 0; j < m; j++) 
            {
                for (int l = 0; l < k; l++) 
                {
                    irecv[i][j][l]=rand()%20;
                }
            }
        }
 
 
        for (int i = 0; i < n; i++) 
             {
            for (int j = 0; j < m; j++) 
            {
                for (int l = 0; l < k; l++) 
                {
    cout << "  irecv =  " << irecv[i][j][l] << "\n";
                }
                
            }
     }
 
 
     vector <int> tmp_irecv;
     
 
       for (int i = 0; i < n; i++)  
       {
            for (int j = 0; j < m; j++) 
            {
                for (int l = 0; l < k; l++) 
                {
                    tmp_irecv.push_back(irecv[i][j][l]);
                }
            }
        }
        
     cout << "\n\n";
     for (int i = 0; i < tmp_irecv.size(); i++) 
     {
         cout << tmp_irecv[i] << "    ";
     }
     cout << "\n\n";
     
     vector <int> :: iterator ii = tmp_irecv.begin();
     tmp_irecv.erase(ii,ii+m*k);
     
      for (int i = 0; i < tmp_irecv.size(); i++)    
     {
         cout << tmp_irecv[i] << "    ";
     }
     
       cout << "\n\n";
     
      for (int i = 0; i < n; i++)   
       {
            for (int j = 0; j < m; j++) 
            {
                for (int l = 0; l < k; l++) 
                {
                    irecv[i][j][l]=tmp_irecv[i*m*l + j*k + l];//!!!!!!!!!!!!!!!
                }
            }
        }
cout << "\n\n";
        for (int i = 0; i < n; i++) 
             {
            for (int j = 0; j < m; j++) 
            {
                for (int l = 0; l < k; l++) 
                {
    cout <<  "  2irecv =  " << irecv[i][j][l] << "\n";
                }
            }
     }
 
cin.get();
  
}
Добавлено через 4 минуты
все нашел, пока собственное сообщение перечитывал =)
C++
1
2
irecv[i][j][l]=tmp_irecv[i*m*l + j*k + l];//было
                }
C++
1
2
irecv[i][j][l]=tmp_irecv[i*m*k + j*k + l];//надо
                }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2012, 10:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Преобразую трехмерный массив в одномерный и обратно (C++):

Трехмерный динамический массив - C++
Помогите создать трехмерный динамический массив, в c++ не сильно шарю, а в гугле нужной информации не нашёл. Добавлено через 10 минут ...

Трехмерный массив char - C++
здравствуйте, вопрос такой: есть массив например char Aэлементов есть функция которая обращается к одному из элементов этого...

Создать трехмерный массив - C++
Создать трехмерный массив . Заполнить его . Посчитать сумму тех элементов ,чьи индексы делятся на 4 (каждый из индексов отдельно ) ....

Трехмерный динамический массив - C++
Здравствуйте друзья, я переписываю код с Delphi на C++. В Delphi был задан динамический трехмерный массив следующим образом: ...

Преобразовать двухмерный массив в трехмерный - C++
Есть двухмерный массив a. Необходимо добавить ему еще одну размерность. Как это сделать в рамках функции? void IncreaseField (int **a,...

Правильно ли я заполняю трехмерный массив - C++
Вот код заполнения трех мерного массива из файла ifstream loader(&quot;temp.txt&quot;); if (loader.is_open()){ for (size_t z = 0; z &lt; 3 * 3...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2012, 10:37
Привет! Вот еще темы с ответами:

Вернуть указатель на трехмерный массив - C++
Подскажите пжл как вернуть указатель из моей функии на трехмерный массив. double dif(double kof,double lp,double step){ double ...

Указатель на статический трехмерный массив - C++
Как сделать указатель на статический трехмерный массив? Почему компилятор сам не определяет размер массива,а выбивает ошибку int mass= ...

Преобразовать шестимерный массив в трехмерный - C++
Заранее спасибо.

Как вывести трехмерный динамический массив - C++
народ можете подсказать) написал код, где заполняется трехмерный массив так как мне необходимо, но при его выводе часть массива, вместо...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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