Я практикую указатели функций в C ++.Я написал следующий код.Я объявил целочисленный вектор и добавил значения к нему.После этого я передаю значения вектора в функцию по ссылке.Я добавляю значение к каждому значению вектора.После этого при отображении содержимого исходного вектора значения не меняются.Ниже приведен код.
void printValues (int val) {
cout << val << " ";
}
void ForEach (vector<int> values, void (* func )(int), int inc) {
for (int value : values) {
value = value + inc;
func (value);
}
}
int main()
{
vector<int> v1;
cout << "Please enter the values in vector";
for (int i = 0; i < 5; i++) {
int val = 0;
cin >> val;
v1.push_back(val);
}
cout << "value stored in vector :" ;
ForEach(v1, printValues,8);
cout << "\nThe content of original vector:";
for (int i = 0; i < v1.size(); i++) {
cout << " " << v1[i];
}
}
Я ожидаю, что выход будет 58,68,78,88,98, но фактический выход составляет 50,60,70,80,90.