Заполнение массива от 0 до числа N-1
#include <vector>
#include <iostream>
std::vector<int> arr(int n = 0) {
std::cin >> n;
for (int i=0; i<n-1; i++)
{
arr[i]=i;
}
for (int i=0; i<=n-1; i++)
{
std::cout << arr[i];
}
}
выдаёт следующие ошибки при тесте на сайте:
main.cpp:11:4: error: subscript of pointer to function type 'std::vector<int> (int)'
arr[i]=i;
^~~
main.cpp:15:17: error: subscript of pointer to function type 'std::vector<int> (int)'
std::cout << arr[i] << ",";
^~~
2 errors generated.
В ide visual studio пишет: для индекса требуется массив или указатель
Пытался так же делать без вектора, обычным массивом, тоже не работает. Задача на https://www.codewars.com/kata/571d42206414b103dc0006a1/train/cpp
Ответы (2 шт):
Автор решения: Harry
→ Ссылка
Заглянул на сайт. Вам надо было всего лишь в своей функции объявить вектор с другим именем, каковой и вернуть:
std::vector<int> arr(int n = 0) {
std::vector<int> a;
for(int i = 0; i < n; ++i)
a.push_back(i);
return a;
}
Вы же ничтоже сумняшеся в качестве вектора пытались использовать саму функцию. Для чего она никак не предназначена :)
Автор решения: AR Hovsepyan
→ Ссылка
Алгоритм написан, нужно просто его использовать:
int n;
std::cin >> n;
std::vector<int> arr(n);
std::iota(arr.begin(), arr.end(), 0);