创建一个向量作为函数调用参数

Create a vector as a function call parameter

我不知道在这种情况下我必须做什么..

Class Build_Using_Vector : public Another
{
 private:
         int Thing;
         vector<int> List_Elem;
 public:
         Build_Using_Vector(int TThing, vector<int> LList_Elem);
};

好的,这不是问题...第二部分仍然不是问题:

Build_Using_Vector::Build_Using_Vector(int TThing, vector<int> LList_Elem) : Another() 
 {
    Thing = TThing;
    List_Elem = LList_Elem;
 }

正如我所说,这不是一个问题。

概率就在那里,在"main"。 在我的情况下不是 "main" 是另一个 class...但我认为是相同的...

int main()
 {
   Build_Using_Vector Foo(5, ???) // i don't know how to build with a multiple of element for example 5,6,7)
   return 0;
 }

谢谢

您可以使用 list initilizationBuild_Using_Vector Foo(5, ???) 会是

Build_Using_Vector Foo(5, {5,6,7})

我还建议您在构造函数中使用所有成员初始化并更改

Build_Using_Vector::Build_Using_Vector(int TThing, vector<int> LList_Elem) : Another() 
{
    Thing = TThing;
    List_Elem = LList_Elem;
}

Build_Using_Vector::Build_Using_Vector(int TThing, vector<int> LList_Elem) : Another() , Thing(TThing), List_Elem(LList_Elem) {}

如果您没有符合 C++11 的编译器,那么您将不得不手动构建 std::vector

int main ()
{
    const int arr [] = {5, 6, 7} ;
    const unsigned arrSize = sizeof (arr) / sizeof (arr [0]) ;

    std::vector <int> v1 (arr, arr + arrSize) ;
    Build_Using_Vector Foo(5, v1) ;

    return 0 ;
}

或者

int main ()
{    
    std::vector <int> v1 ;
    v1.push_back (5) ;
    v1.push_back (6) ;
    v1.push_back (7) ;        

    Build_Using_Vector Foo(5, v1) ;

    return 0 ;
}

或者

int main ()
{    
    Build_Using_Vector Foo(5, CallSomeFunctionThatReturnsAnStdVector()) ;

    return 0 ;
}