如何将结构向量传递给C ++中的函数?

时间:2013-04-08 04:35:38

标签: c++ oop

在下面的示例代码中,我需要将结构向量传递给函数。

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”?

2 个答案:

答案 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);