Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/207: Рейтинг темы: голосов - 207, средняя оценка - 4.68
10 / 10 / 2
Регистрация: 16.08.2009
Сообщений: 418
1

Присвоение значений всем элементам массива

15.10.2009, 15:03. Просмотров 43468. Ответов 13
Метки нет (Все метки)

Как присвоить значение всем элементам массива наиболее простым способом

думал что

C++
1
2
  
double massiv[11]={1};
присваивает значение всем элементам но как оказалось только первому элементу

Можно как то присвоить значение всем элементам сразу при инициализации массива?
Ну или без использования цикла
К примеру надо чтобы все элементы массива были равны 1.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2009, 15:03
Ответы с готовыми решениями:

Присвоение элементам массива значений структуры
Доброго дня. У меня возникла проблема с присвоением элементам массива значений структуры. В чем...

Присвоение значений элементам двумерного динамического массива
Я недавно начал программировать на языке С++, поэтому, естественно, многого не понимаю :( Вот...

Присвоение значений элементам двумерного вектора
Недавно добрие люди помогли мне со следующим кодом 1 код vector<vector<char>> vv; // ......

Присвоение значений элементам вложенной структуры
Необходимо присвоить значение элементам массива структур struct message { unsigned char code;...

13
12 / 12 / 5
Регистрация: 05.07.2009
Сообщений: 147
Записей в блоге: 1
15.10.2009, 15:22 2
C++
1
2
3
for(int i=0;i<11;i++){
massiv[i]=1;
}
0
10 / 10 / 2
Регистрация: 16.08.2009
Сообщений: 418
15.10.2009, 15:25  [ТС] 3
pigah,
ну это я и сам знаю
я ж написал можно ли без цикла
0
12 / 12 / 5
Регистрация: 05.07.2009
Сообщений: 147
Записей в блоге: 1
15.10.2009, 15:28 4
Нет но можно так:
C++
1
double massiv[5]={1,1,1,1,1};
0
Эксперт С++
2919 / 1268 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
15.10.2009, 15:37 5
А если массив тысяч этак на 20 элементов
C++
1
2
3
4
5
6
#include <algorithm>
 
const int size = 50000;
double array[size];
 
std::fill(array, array + size, 1.0);



1
1998 / 1598 / 488
Регистрация: 31.05.2009
Сообщений: 2,990
15.10.2009, 16:17 6
...присваивает значение всем элементам но как оказалось только первому элементу
Не совсем так. Если используется список инициализации, то все эелементы которые не инициализированы в ручную автоматически инициализируются нулями. Т.е. к примеру int mas[5] = {0}; инициализирует нулями весь массив, а не только первый элемент.
0
Эксперт JavaЭксперт С++
8363 / 3584 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
15.10.2009, 16:18 7
Шутка, но как вариант
C++
1
2
3
4
int buf[20000];
for(int i = 0; i < 20000; ++i)
    buf[i] = 1;
int* mas = buf;
0
10 / 10 / 2
Регистрация: 16.08.2009
Сообщений: 418
15.10.2009, 16:23  [ТС] 8
CheshireCat,
большое спасибо то что нужно
почему то заработало без #include <algorithm> и std:: это нормально ?

pigah,
C++
1
double massiv[5]={1,1,1,1,1};
тож полезно знать что так можно
0
1182 / 467 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
15.10.2009, 16:40 9
nill, а чем тебе цикл мешает?
0
Эксперт С++
2332 / 1705 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
15.10.2009, 16:41 10
Цитата Сообщение от CheshireCat Посмотреть сообщение
А если массив тысяч этак на 20 элементов
C++
1
std::fill(array, array + size, 1.0);
Пояснения к функции fill.
C++
1
2
3
4
5
6
template<class ForwardIterator, class Type>
   void fill(
      ForwardIterator _First,  // указатель на первый элемент массива (имя массива является одновременно указателем на первый элемент)
      ForwardIterator _Last,   // указатель на элемент следующий за последним (указатель на первый элемент плюс количество)
      const Type& _Val         // заполнитель 
   );
Ссылка в MSDN: fill(C++ Std Lib)

А std нужно потому, что fill входит в простанство имен (namespace) под названием std, и просто так его использовать не получиться. Операция :: (разрешение контекста) используется для доступа к членам пространства имен (но не только).
0
14 / 14 / 4
Регистрация: 08.10.2009
Сообщений: 114
15.10.2009, 16:57 11
Можно использовать такой вариант, который значительно быстрее способа "через цикл":
C++
1
2
3
4
5
6
7
8
9
//In Visual Studio 9.0
#include<iostream>
....
int main()
{
int Array[100];
memset(Array, 0, sizeof(int)*100)
....
}
Это подходит для целочисельных типов и типа bool.
0
Эксперт С++
2919 / 1268 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
15.10.2009, 17:06 12
Это допустимо только при заполнении нулями. Иначе, для ненулевых значений, это допустимо только для типов char и bool.
0
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 3
29.12.2016, 19:29 13
как присваивать значение символьным массивам?
0
1462 / 1170 / 551
Регистрация: 08.01.2012
Сообщений: 4,512
30.12.2016, 03:43 14
C
1
2
3
4
char a[]="qwerty";//6+7-й ноль
char b[10]="";//все 10 ноль
char c[10];
memset(c,'z',sizeof(c));//все 10 'z'
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.12.2016, 03:43

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

Ко всем элементам одномерного массива прибавить первый
Дан одномерный массив. Нужно ко всем его элементам прибавить первый . Например : ввод - 1 2 3 4 ...

Строка которая добавит + 5 всем элементам массива
Будьте добры помогите

do while цикл для прибавления числа ко всем элементам массива
Привет! У меня задача прибавить одно число к каждому элементу массива (преобразовать температуру из...

Прибавить ко всем элементам одномерного числового массива максимальный элемент
Прибавить ко всем элементам одномерного числового массива максимальный элемент. Пожалуйста...

Помогите найти ошибку в коде(цикл for проходит не по всем элементам массива)
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &lt;clocale&gt; #include &lt;stdio.h&gt; #include...

Исправить программу, чтобы она прибавляла ко всем элементам одномерного массива первый
Подскажите как сделать чтобы эта программа ко всем элементам прибавляла не 1 , а первый элемента...


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

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

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