MIKHAN_GO
@MIKHAN_GO

Как fill принимает массив умноженный на long long?

Дан такой код:
#include  <iostream>
#include <algorithm>

using namespace std;
int main() {
    long long n;
    cin >> n;
    int a[1000000];
    fill(a, a+n, 1);
    return 0;
}

Почему fill() принимает такое значение, как массив+long long? (2й аргумент)
  • Вопрос задан
  • 47 просмотров
Решения вопроса 2
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Арифметика указателей. Это получается указатель на за-последним элементом массива, как ::end() у коллекций.
Ответ написан
Комментировать
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
fill принимает два указателя - указатель на начало, указатель на элемент, расположенный за последним; а также собственно значение, которым заполнять.

В данном случае, a+n трактуется как указатель на элемент массива с идексом n, то есть, &a[n].
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы