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

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

Восстановить пароль Регистрация
 
Lerby
3 / 3 / 0
Регистрация: 30.05.2013
Сообщений: 53
22.01.2014, 18:00     fill и fill_n из STL (MVS) #1
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++ Функция fill Для двумерного массива
C++ MVS 2010
C++ MVS 10 vs QT
изменить процедуру fill на чтение из файла C++
C++ Учебники/уроки по MVS
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
22.01.2014, 18:02     fill и fill_n из STL (MVS) #2
можно
C++
1
2
std::fill(array, array + 5, number);
std::fill_n(array, 5, number);
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
22.01.2014, 18:35     fill и fill_n из STL (MVS) #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
Сообщений: 53
23.01.2014, 20:31  [ТС]     fill и fill_n из STL (MVS) #4
и еще 1 не большой вопрос
Как применить fill/fill_n к std::map? Или стандартными способами (без извращений) этого не сделать?)
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
23.01.2014, 20:52     fill и fill_n из STL (MVS) #5
Lerby, вы наверняка чего-то не того хотите от map.
Если что, этот контейнер состоит из пар. Вы наверное хотите задать дефолтное значение для всех вторых элементов из двойки?
Lerby
3 / 3 / 0
Регистрация: 30.05.2013
Сообщений: 53
23.01.2014, 20:57  [ТС]     fill и fill_n из STL (MVS) #6
Дело в том, что меня интересует не столько само практическое использование прямо сейчас, сколько информация об этом алгоритме. Просто хотелось узнать, если вдруг, когда нибудь....
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
23.01.2014, 21:00     fill и fill_n из STL (MVS) #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
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
23.01.2014, 21:03     fill и fill_n из STL (MVS) #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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2014, 21:06     fill и fill_n из STL (MVS)
Еще ссылки по теме:

C++ Импорт библиотеки в MVS
C++ Компиляция на MVS 2013
C++ Не компилирует в MVS 2008

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

Или воспользуйтесь поиском по форуму:
MrGluck
23.01.2014, 21:06     fill и fill_n из STL (MVS)
  #9

Не по теме:

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

Yandex
Объявления
23.01.2014, 21:06     fill и fill_n из STL (MVS)
Ответ Создать тему
Опции темы

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