2013-07-03 68 views
-1

我想如下定義一個結構:傳遞參數結構

struct myStruct { 
    std::vector<double> myVector(vector_size, init_value); 
    ... 
} 

是否可以傳遞參數vector_size(INT),和init_value(雙)的結構?

+1

你有一個成員函數myVector返回一個向量的結構。這是你想要的嗎? – juanchopanza

+0

對不起,我感到困惑。 myVector是一個stl向量。 –

回答

4

您可以定義一個構造的結構:

struct myStruct { 
    std::vector<double> myVector; 

    myStruct(size_t vector_size, double init_value) : myVector(vector_size, init_value) {} 
}; 
+1

+1。 – megabyte1024

5

定義兩個參數的構造和使用構造函數初始化列表:

struct myStruct{ 
    myStruct(size_t a_size, double a_value): myVector(a_size, a_value) {} 
    std::vector<double> myVector; 
}; 

或者,使用aggregate initialization(見http://ideone.com/Ky50Ex):

struct myStruct 
{ 
    std::vector<double> myVector; 
}; 

myStruct m = { std::vector<double>(14, 0.5) };