问题描述
我正在使用对象的名称成员在 C++ 中搜索类对象的向量,以增加它的监视成员。常规 for 循环和语法成功地增加了成员。但是,我尝试使用我认为是基于范围的 for 循环的正确语法来做同样的事情是不成功的。使其成功的正确语法是什么?
#include <stdio.h>
#include <stdlib.h>
// Function Prototype..
void totSchol(float total [],float *aPointer);
int main(void)
{
// Declare Local Variables..
int i;
float amt[5]={0},tot;
//points to the array variable.
float *aPointer = &amt[0];
//prompts AYTB Bank..
printf("\t\t AYTB Bank\n");
for (i=0; i<5; i++)
{
//prompts to enter scholarship amount for 5 students..
printf("Student %d,Enter scholarship amount: ",i+1);
//takes value entered and store in pointer variable aPointer & increment by i..
scanf("%f",aPointer + i);
tot += aPointer;
}
totSchol(amt,aPointer);
return 0;
}
void totSchol(float total [],float *aPointer)
{
int x;
float year3;
for (x=0; x < 5; x++)
{
printf("\nThe total amount for each studetn is: %.2f",(aPointer + x));
year = (aPointer +x) * 3;
printf("\nThe total amount for each studetn after 3 years is: %.2f",year3);
}
}
顺便说一句,如果有区别,这些循环在一个方法内部,该方法与向量一起是向量中对象类的友元类的成员。而且我也已经尝试过 ++m.watched;和 ++(m.watched);没有成功。谢谢
解决方法
您的循环每次迭代都会将元素复制到 m
中。您对 m
的更改将针对该副本。使 m
成为对容器中元素的引用:
for(auto& m : mList)