我有一个有结构的类。如何创建此结构类型的向量?
以下是示例:
class A {
public:
struct mystruct {
mystruct (int _label, double _dist) : label(_label), dist(_dist) {}
int label;
double dist;
};
}
现在在这个类“A”中有一个函数如下。
myfunc ( vector<mystruct> &mystry );
所以我的问题是我需要用结构向量来调用这个函数。我怎么能宣布这个?
答案 0 :(得分:3)
使用范围运算符::
:
std::vector<A::mystruct>
答案 1 :(得分:1)
class A
{
public:
struct mystruct
{
mystruct ( int _label, double _dist ) : label (_label), dist (_dist) {}
int label;
double dist;
};
void myfunc(std::vector<mystruct> &mystr);
}
只要你在mystruct之后声明myfunc就可以了。
答案 2 :(得分:1)
当您声明 A的方法时,mystruct
已经在范围内,因此您可以无限制地使用它:
class A {
public:
struct mystruct {
mystruct (int _label, double _dist) : label(_label), dist(_dist) {}
int label;
double dist;
};
void myfunc(std::vector<mystruct> &);
}
但是当你调用它时,你调用的参数类型取决于你的位置:
void free_function() {
A a;
std::vector<A::mystruct> arg;
a.myfunc(arg);
}
void A::another_method() {
std::vector<mystruct> arg;
this->myfunc(arg);
}