【发布时间】:2019-08-22 22:56:13
【问题描述】:
我正在收集姓名和考试成绩来填充向量。函数和 main 方法都无法识别结构的成员。我怎样才能看到它的成员?或者有没有更好的方法来使用函数使用用户输入填充结构向量?
我搜索了其他类似的帖子,但似乎只是我错过了一个简单的代码错误。
#include <iostream>
#include <vector>
using namespace std;
const int classSize = 1;
struct StudentType {
string studentFName;
string studentLName;
int testScore;
char grade;
};
vector<StudentType> collectStudentData(vector<StudentType> students[classSize]) {
for (int i = 0; i < classSize; i++) {
cout << "Student " << i << "'s name and test score" << endl;
cin >> students[i].studentFName >> students[i].studentLName >> students[i].testScore;
}
return students[classSize];
};
int main() {
vector<StudentType> students[classSize] = {};
students[classSize] = collectStudentData(students);
cout << students[1].studentFName << students[1].studentLName << students[1].studentFName;
};
'studentFName': 不是'std::vector>'的成员
【问题讨论】:
-
将
vector<StudentType> students[classSize] = {};更改为vector<StudentType> students;(并再次在collectStudentData的声明中)。 -
@PaulSanders 还需要进行其他几项更改
-
你最好使用向量的向量而不是向量的数组
-
@NutCracker 我认为他们只想要一个向量但对语言语法感到困惑
-
@MM 是的,OP 在读入向量之前至少需要在向量中分配空间。