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



我不知道在这种情况下我该怎么办。

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

ok,这不是一个问题…第二部分仍然不是问题:

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

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

问题就在那里,在"main"。在我的情况下,不是"main"是另一个类…但我认为是一样的……

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;
 }

谢谢

可以使用列表初始化。Build_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 ;
}

相关内容

  • 没有找到相关文章

最新更新