Помогите массив c++
Почему вместо значений массива выводит просто нули?
По дате
По рейтингу
123456789101112131415161718192021222324252627282930313233343536373839404142
#include <iostream>
#include <vector>
using namespace std;
void russian() {
system("chcp 1251 > nul");
}
void pause() {
system("pause > nul");
}
template<typename T>
void input_vector(vector<T>& v) {
cout << "Введите значения: ";
for (auto& x : v) cin >> x;
}
template<typename T>
void output_vector(const vector<T>& v) {
for (const auto& x : v) cout << x << ' ';
cout.put('\n');
}
size_t input_size(const char* prompt) {
size_t n{ 0 };
while (!n) {
cout << prompt;
cin >> n;
}
return n;
}
int main() {
russian();
const auto n = input_size("Введите размер: ");
vector<int> v(n);
input_vector(v);
output_vector(v);
pause();
}Ты передаешь массивы в свои функции по значению. Это значит, что при вызове, скажем, функции input весь твой массив берётся и копируется в новый, потом в самой функции ты заполняешь элементы этого нового временного массива, а при выходе из input этот временный массив уничтожается.
Если хочешь изменить оригинальный массив (или любую другую переменную) - надо передавать ее по ссылке или указателю.
27 строку так сделай vector<int>& mass
и все будет работать нормально
Видео по теме