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

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

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

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

05.04.2010, 11:00. Просмотров 402. Ответов 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......
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2010, 11:00     Вопрос про заполнение Vector - а
Посмотрите здесь:

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

Заполнение структуры из vector - C++
Доброго времени суток. Имеется такого вида структура: struct Point { Point (void); double x,y; int number;

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

Вопрос про конструктор - C++
цитата исходного кода из книги: class stock{ ... public: stock(); //Типа объявление конструктора по умолчанию чтоли... ...

Вопрос про __function - C++
вопрос глупый, но все же: зачем в названии функциях пишут две __ - void __Plus(int a); - пример int __Display(int b) это для красоты...

Вопрос про указатели - C++
char *a = &quot;s&quot;; 1. Выделяется место в памяти 2. В это место записывается s 3. Указателю a приваивают адрес памяти где храниться s ...

Вопрос про консоль - C++
День добрый. Я новичок в программировании и пишу консольную программу.Хотелось бы узнать у более опытных товарищей. Как сделать так,...

Вопрос про классы - C++
Такой пример. Базовый класс First, и два производных от него класса Second и Third. First*ar={new First(параметры),new Second(параметры),...

Вопрос про char - C++
Пожалуйста обьясните доступным языком в чем разница между объявлениями, и какие когда лучше использовать char a; char *c; char b=new...

Вопрос про палиндромы - C++
Такая вот задачка по програмированию С++: Ввести рядок символов и составить масив слов-палиндромов (читаются одинаково с права на лево и...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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