Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
180 / 181 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
1

Вопрос про заполнение Vector - а

05.04.2010, 11:00. Просмотров 463. Ответов 0
Метки нет (Все метки)

Доброго всем времени суток.
Вопрос следующий
есть vector mxyz размерностью 26873856 = 5184*5184 = 72*72*36*48*3
надо после каждого mxyz[i+5183] вставить элемент из другого вектора grace (размерностью 5184), т.е. если это записать через двумерный массив то требуется из mxyz[5184][5184] сделать mxyz[5184][5185]
Не могу понять куда трубуется вставить еще один push_back(), (и как он должен выглядеть ) чтобы это сделать
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
int z0=0,x2,y2,z2;
n = 5184;
for( int y0=0; y0<(int)sqrt(grace.size()); y0++)
    {
         for(int x0=0; x0<(int)sqrt(grace.size()); x0++)
         {
                 if((x0-(int)sqrt(grace.size())/2)*
                 (x0-(int)sqrt(grace.size())/2)+
                 (y0-(int)sqrt(grace.size())/2)*
                 (y0-(int)sqrt(grace.size())/2)<=
                 (int)sqrt(grace.size())*(int)sqrt(grace.size())/2 )
                 {
                  for( int y1=1; y1<=36; y1++)
                       {
                           for(int x1=1; x1<=48; x1++)
                           {     
                           x2=x1-x0; y2=y1-y0; z2=z1-z0;
                           mxyz.push_back((cmxi(x2,y2,z2));
                           mxyz.push_back((cmyi(x2,y2,z2));
                           mxyz.push_back((cmzi(x2,y2,z2));
                           }
                       }                       
                  } 
           }
     }
Пробовал через insert(), но очень долго и глючит из-за размеров вектора поэтому требуется через push_back
C++
1
2
3
4
5
6
7
8
9
10
  vector<double>::iterator it;
    it = mxyz.begin();
    //it += 5183;
   
     for(int i=0;i<n;i++)
     {
    it += 5183+i;
    mxyz.insert ( it ,grace[i]);
     
     }
Заранее спасибо

Добавлено через 33 минуты
sqrt(grace.size()) = 72

Добавлено через 6 минут
Если поможет, то можно поменять порядок циклов for на:

C++
1
2
3
4
5
6
7
8
9
10
11
12
 for( int y1=1; y1<=36; y1++)
                       {
                           for(int x1=1; x1<=48; x1++)
                          {     
 
                 if()......
                    {
                 for( int y0=0; y0<(int)sqrt(grace.size()); y0++)
                   {
                       for(int x0=0; x0<(int)sqrt(grace.size()); x0++)
                            {
mxyz.push_back......
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2010, 11:00
Ответы с готовыми решениями:

Заполнение vector из файла
Надо заполнить вектора из файла. Файл выглядит примерно так. 10 85 m356df78 250 15 90 m346gh78...

Заполнение структуры из vector
Доброго времени суток. Имеется такого вида структура: struct Point { Point (void);...

Заполнение контейнера vector
хочу попросить уважаемых модераторов разрешить задавать тут вопросы касаемо map , set, vector ...

error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main
//Vector.h #include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;climits&gt; #include &lt;vector&gt;...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.04.2010, 11:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>)
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b' содержат 2 числа. Стало...

Вопрос про outtextxy()
Если в графическом режиме выводить текст с помощью функции outtextxy() поверх другого текста, то...

Вопрос про цикл for
Скажите, а есть ли какая-то разница в записях: for (int i=0; i&lt;n; i++) и for (int i=0; i&lt;n; ++i)...

вопрос про скобки
Здравствуйте, получил задание написать программу, смысл которой заключается в умножении матрицы на...


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

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

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