在下面的示例代码中,我需要将结构向量传递给函数。
class A {
public:
struct mystruct {
mystruct (int _label, double _dist) : label(_label), dist(_dist) {}
int label;
double dist;
};
}
我将矢量声明如下:
vector<A:: mystruct > mystry;
现在在这个类“A”中有一个函数如下。
myfunc ( vector<mystruct> &mystry );
如何将结构向量传递给我的“myfunc”?
答案 0 :(得分:4)
试试这个
#include <iostream>
#include <vector>
using namespace std;
class A {
public:
struct mystruct {
mystruct (int _label, double _dist) : label(_label), dist(_dist) {}
int label;
double dist;
};
void myfunc ( vector<mystruct> &mystry ){
cout << mystry[0].label <<endl;
cout << mystry[0].dist <<endl;
}
};
int main(){
A::mystruct temp_mystruct(5,2.5); \\create instance of struct.
vector<A:: mystruct > mystry; \\ create vector of struct
mystry.push_back(temp_mystruct); \\ add struct instance to vector
A a; \\ create instance of the class
a.myfunc(mystry); \\call function
system("pause");
return 0;
}
答案 1 :(得分:0)
好吧,首先你需要创建一个A
的实例,如下所示:
A a;
然后,您需要在myfunc
上致电a
,并传递值mystry
。
a.myfunc(mystry);