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

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

Войти
Регистрация
Восстановить пароль
 
Lerby
3 / 3 / 0
Регистрация: 30.05.2013
Сообщений: 61
#1

fill и fill_n из STL (MVS) - C++

22.01.2014, 18:00. Просмотров 554. Ответов 8
Метки нет (Все метки)

1) Можно ли применить его к обычному массиву данных? ну т.е. например, к:
C++
1
int attay[5];
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2014, 18:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос fill и fill_n из STL (MVS) (C++):

MVS 10 vs QT - C++
Мне хотелось бы узнать что лучше QT или Microsoft Visual Stidio 2010. Учусь программировать на c++, для будущих проектов мне нужен...

MVS 2010 - C++
Пишу на Microsoft visual studio 2010 на с++. Проблема такая: После сборки программы и сохранения компонентов беру ексешник в папочке...

Компиляция в mvs - C++
Приветствую всех. У меня установлен Microsoft Visual Studio 2015. Как скомпилировать C++ программу, которая не использует .NET, чтобы...

изменить процедуру fill на чтение из файла - C++
Для задачи "Алгоритм Флойда-Уоршала" отсюда пытаюсь изменить процедуру fill на чтение из файла, но вылазиет ошибка std::vector too long...

Функция fill Для двумерного массива - C++
Как использовать функцию fill с двумерным массивом std::fill(array, array + size, 1.0); к примеру есть двумерный массив int...

Компиляция на MVS 2013 - C++
Подскажите как компилировать exe файлы что бы они работали где то помимо моего компьютера. На других компьютерах пишет "Запуск невозможен,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
22.01.2014, 18:02 #2
можно
C++
1
2
std::fill(array, array + 5, number);
std::fill_n(array, 5, number);
MrGluck
Модератор
Эксперт CЭксперт С++
7211 / 4377 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
22.01.2014, 18:35 #3
От себя добавлю такой вариант (С++11)
C++
1
std::fill(std::begin(a), std::end(a), number);
А еще поворчу что лучше размеры массива задавать не через magic number.
То есть вот так кошернее:
C++
1
2
3
const int M = 5;
int a[M];
...
Lerby
3 / 3 / 0
Регистрация: 30.05.2013
Сообщений: 61
23.01.2014, 20:31  [ТС] #4
и еще 1 не большой вопрос
Как применить fill/fill_n к std::map? Или стандартными способами (без извращений) этого не сделать?)
MrGluck
Модератор
Эксперт CЭксперт С++
7211 / 4377 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
23.01.2014, 20:52 #5
Lerby, вы наверняка чего-то не того хотите от map.
Если что, этот контейнер состоит из пар. Вы наверное хотите задать дефолтное значение для всех вторых элементов из двойки?
Lerby
3 / 3 / 0
Регистрация: 30.05.2013
Сообщений: 61
23.01.2014, 20:57  [ТС] #6
Дело в том, что меня интересует не столько само практическое использование прямо сейчас, сколько информация об этом алгоритме. Просто хотелось узнать, если вдруг, когда нибудь....
MrGluck
Модератор
Эксперт CЭксперт С++
7211 / 4377 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
23.01.2014, 21:00 #7
Цитата Сообщение от Lerby Посмотреть сообщение
информация об этом алгоритме
её содержимое примерно такого плана:
C++
1
2
3
4
5
6
7
8
template <class ForwardIterator, class T>
  void fill (ForwardIterator first, ForwardIterator last, const T& val)
{
  while (first != last) {
    *first = val;
    ++first;
  }
}
http://www.cplusplus.com/reference/algorithm/fill/

Добавлено через 1 минуту
Никакого смысла делать fill для map нет. Советую сначала осознать смысл сего контейнера.
Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
23.01.2014, 21:03 #8
Его алгоритм заключается в движении по всем элементам контейнера по итератору for (; _First != _Last; ++_First) и присвоение значения, которое вы подали параметром *_First = _Val; Мапу таким образом нельзя присваивать значения т. к. для доступа к его ключу и значению нужно вводить *_First.first и *_First.second. А для вектора, листа и т. д.. можно делать так:
C++
1
2
3
    vector<string> vc(10);
    fill(vc.begin(), vc.end(), "Word");
    for_each(vc.begin(), vc.end(), [](string s){ cout << s << endl; });//Output
MrGluck
23.01.2014, 21:06     fill и fill_n из STL (MVS)
  #9

Не по теме:

Alex566, если уж С++11, то почему бы не for-цикл по коллекции?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2014, 21:06
Привет! Вот еще темы с ответами:

Что такое MVS? - C++
И для чего нужно?В гугле ничё не нашёл.

Импорт библиотеки в MVS - C++
Здравствуйте! Нужна небольшая помощь знающих! Скачал библиотеку cURL (работа с сетью и вебом), применив которую в своем коде получаю...

Не компилирует в MVS 2008 - C++
Господамы вот такая программа для проверки устного умножения в MVS 2008 ругается на time, srand и rand, в чем может быть проблема? ...

Неурядица с компиляцией, MVS - C++
Хочу заполнить двухмерный динамический массив с клавиатуры, на что после ввода размерности и первого числа выскакивает следующее сообщение:...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.01.2014, 21:06
Ответ Создать тему
Опции темы

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