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

Инициализировать массив быстро? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка линейного однонаправленного списка http://www.cyberforum.ru/cpp-beginners/thread403820.html
Всем привет) Нужно отсортировать линейный однонаправленный список. Как это можно сделать? Причем нужно менять местами не данные, а указатели.. Вот код программы, список структур. Помогите плиз с сортировкой #include "stdafx.h" #include <clocale> #include <iostream>
C++ [C++] Арканоид Здравствуйте, я самый на то есть начинающий программист,поэтому сразу прошу прощения, если вопросы будут не очень коректными.Очень расчитываю на вашу помощь. Задача состоит в следующем. Нужно написать Арканоид на VisualС++(в игре должна присутствовать простая минюшка и хотябы два, три уровня.Причём написание нового уровня не должно сводиться к переписанию половины кода).Нужно использовать движок... http://www.cyberforum.ru/cpp-beginners/thread403817.html
Найти и вывести координаты центра окружности C++
Друзья, нужна помощь. Девушке задали лабы по СИ, она не шарит. Знакомых всех спросил, никто не может помочь. Вот она: 1. Диаметр окружности начинается в точке М1(x1,y1) и кончается в точке M2(x2,y2). Найти и вывести координаты её центра. 2. Числа X1 и X2 являются корнями приведенного квадратного уравнения. Найти и выве-сти наибольшее из чисел: sin(p) и cos(q), где p и q являются его вторым и...
system("") C++
Хотел узнать, есть справочник хотя бы о большинстве команд в system("")? Сам искал, ничего хорошего не нашел.
C++ Геометрические задачи http://www.cyberforum.ru/cpp-beginners/thread403780.html
Составить программу вычисления сторон треугольника, если известны радиус описанного вокруг него круга и градусные меры двух его углов. #include <iostream.h> #include <conio.h> #include <math.h> main() { float a, b, c, R, x, y, z; cout<<"Vvedit qradysny miry dvoh kytiv i radiys opusanogo kola: ";
C++ Минимальное количество монет Есть такая задача: Денежная система некоторой страны предоставляет монеты номиналом с, = 1, с2, ..., сN. Как выдать сумму S с помощью минимального числа монет? Вход. В первой строке — сумма S и количество номиналов N, во второй — значения номиналов: 1<N≤20, 1=с1<с2<...< сN≤50000, S≤100000. Выход. В первой строке — минимальное количество монет, во второй — N чисел (количества монет каждого... подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.12.2011, 07:01     Инициализировать массив быстро?
Цитата Сообщение от DeadRipper Посмотреть сообщение
ну фактически все сводится к посту taras atavin
можно заранее создать число большее по размеру которое было бы сочетанием нескольких переменных, но когда неизвестно это число мне кажется это только дольше будет
Почему?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void s(short int x, short int *&a, unsingned int n)
{
 long int *p;
 long int *e;
 long int t;
 t=x|(x<<(sizeof(x)*8));// Объединяем один раз
 a= new short int [n];
 if (a)
 {
  e=(long int *)a;
  for (p=e+n/2-1; p>=e; --p) // И экономим тысячи инитов. У него ведь на весь массив одно значение
  {
   *p=t;
  }
 }
}
Добавлено через 3 минуты
Цитата Сообщение от DeadRipper Посмотреть сообщение
xor ecx,ecx;// зануляем ecx
И после этого ты говоришь об оптимизации?! С нолём надо сравнивать, так как это быстрее любого другого сравнения.

Добавлено через 9 минут
Цитата Сообщение от DeadRipper Посмотреть сообщение
разве что берет число он каждый раз по памяти, когда лучше бы занести его в регистр
Когда это оправдано, он помещает данные в регистры, в компилированном коде часть переменных даже вообще ни когда не бывает ни где, кроме регистров. Но чтоб поместить данное в регистр, сначала надо сохранить другое данное. А если для трёх часто используемых даннных будет использоваться общий регистр из-за нехватки регистров, а для трёх более редких - индивидуальные, то при каждом обращении к общему регистру происходит два обращения к памяти, что медленнее доступа к индивидуальным регистрам, что тормозит исполнение, а при противоположном распределении регистров это бы происходило реже и реже торможение. Регистров то не так уж много, есть камни всего с четырьмя регистрами общего назначения.

Добавлено через 3 минуты
Цитата Сообщение от Jupiter Посмотреть сообщение
а смысл когда можно так
Код C++
double **array=new double *[array_size]();
for(int i=0; i<array_size; i++)
{
* *array[i] = new double[array_size]();
}
Я бы не стал полагаться на дефолтозануление по new за исключением объектов и только с известными дефолтоконструкторами. А дабл - скаляр.
 
Текущее время: 01:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru