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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 123, средняя оценка - 4.93
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
15.10.2009, 15:03     Присвоение значений всем элементам массива #1
Как присвоить значение всем элементам массива наиболее простым способом

думал что

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

Можно как то присвоить значение всем элементам сразу при инициализации массива?
Ну или без использования цикла
К примеру надо чтобы все элементы массива были равны 1.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2009, 15:03     Присвоение значений всем элементам массива
Посмотрите здесь:

Матрицы, Ассемблерная вставка. Всем элементам второй строки присвоить соответствующие элементы последнего столбца C++
Присвоение значений элементам вложенной структуры C++
Помогите найти ошибку в коде(цикл for проходит не по всем элементам массива) C++
C++ Присвоение значений элементам двумерного динамического массива
C++ На вход подаётся вектор и ко всем его элементам требуется применить одну математическую операцию
C++ Дан массив из 10 элементов, присвоить всем элементам значение
Ко всем элементам одномерного массива прибавить первый C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pigah
 Аватар для pigah
12 / 12 / 2
Регистрация: 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;
}
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
15.10.2009, 15:25  [ТС]     Присвоение значений всем элементам массива #3
pigah,
ну это я и сам знаю
я ж написал можно ли без цикла
pigah
 Аватар для pigah
12 / 12 / 2
Регистрация: 05.07.2009
Сообщений: 147
Записей в блоге: 1
15.10.2009, 15:28     Присвоение значений всем элементам массива #4
Нет но можно так:
C++
1
double massiv[5]={1,1,1,1,1};
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,316
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);



rangerx
1919 / 1528 / 139
Регистрация: 31.05.2009
Сообщений: 2,892
15.10.2009, 16:17     Присвоение значений всем элементам массива #6
...присваивает значение всем элементам но как оказалось только первому элементу
Не совсем так. Если используется список инициализации, то все эелементы которые не инициализированы в ручную автоматически инициализируются нулями. Т.е. к примеру int mas[5] = {0}; инициализирует нулями весь массив, а не только первый элемент.
M128K145
Эксперт C++
 Аватар для M128K145
8276 / 3495 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
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;
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
15.10.2009, 16:23  [ТС]     Присвоение значений всем элементам массива #8
CheshireCat,
большое спасибо то что нужно
почему то заработало без #include <algorithm> и std:: это нормально ?

pigah,
C++
1
double massiv[5]={1,1,1,1,1};
тож полезно знать что так можно
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1145 / 427 / 19
Регистрация: 23.06.2009
Сообщений: 6,154
Завершенные тесты: 1
15.10.2009, 16:40     Присвоение значений всем элементам массива #9
nill, а чем тебе цикл мешает?
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2295 / 1665 / 86
Регистрация: 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, и просто так его использовать не получиться. Операция :: (разрешение контекста) используется для доступа к членам пространства имен (но не только).
Sich_Taras
14 / 14 / 1
Регистрация: 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.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,316
15.10.2009, 17:06     Присвоение значений всем элементам массива #12
Это допустимо только при заполнении нулями. Иначе, для ненулевых значений, это допустимо только для типов char и bool.
Владимир54645
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 3
29.12.2016, 19:29     Присвоение значений всем элементам массива #13
как присваивать значение символьным массивам?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2016, 03:43     Присвоение значений всем элементам массива
Еще ссылки по теме:

Исправить программу, чтобы она прибавляла ко всем элементам одномерного массива первый C++
Ошибка при задании значений элементам массива C++
C++ Прибавить ко всем элементам одномерного числового массива максимальный элемент
Ко всем положительным элементам массива прибавить первый элемент, а из нулевых вычесть заданное число C++
Реализовать меню выбора арифметического действия, которое будет применено ко всем элементам массива C++

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

Или воспользуйтесь поиском по форуму:
MansMI
1053 / 850 / 207
Регистрация: 08.01.2012
Сообщений: 3,076
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'
Yandex
Объявления
30.12.2016, 03:43     Присвоение значений всем элементам массива
Ответ Создать тему
Опции темы

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