我在如何调用我的功能方面遇到了麻烦,我现在已经彻底搜索了一个多小时,似乎无法找到答案。
示例代码:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
struct student
{
string first
string last
}
void lookup_student(vector <student> *classes);
int main()
{
vector <student> classes;
//put stuff here that fills up vector and such
lookup_student(&classes);
return 0;
}
void lookup_student(vector <student> *classes)
{
cout << classes[0].first;
}
我刚刚在现场做了这个,因为我目前的程序目前大约有300行,这个例子正好解释了我需要什么。我确定要么在函数中声明结构向量错误,要么我在main中做错了。任何帮助将不胜感激。
它给我的错误信息是std::vector <student> has no member named first
。
答案 0 :(得分:2)
你必须取消引用指针
cout << (*classes)[0].first;
我建议传递矢量as a const reference,然后你可以像使用它一样使用它
void lookup_student(vector<student> const& classes)
{
cout << classes[0].first;
}
然后你只需将矢量传递给
int main()
{
vector<student> classes;
//put stuff here that fills up vector and such
lookup_student(classes);
return 0;
}
答案 1 :(得分:0)
如果您遇到指针困难,可以使用引用来更容易操作: -
void lookup_student(const vector <student>& classes)
{
//classes[i].first
}
并将其称为
lookup_student(classes);