This question already has answers here:
What is the easiest way to initialize a std::vector with hardcoded elements?
                                
                                    (26个答案)
                                
                        
                                5年前关闭。
            
                    
我正在寻找香草C ++ 98解决方案(无升压或qt等)

有什么办法可以做like this

// valid in c++ 11
std::vector<Foo> vFoo {Foo1, Foo2, Foo3, Foo4} ;


或类似的东西

// Well it is C# but you got the point.
List<Foo> lFoo = new List<Foo>() { Foo1, Foo2, Foo3, Foo4 };


现在,我使用这个:

std::vector<Foo> vFoo;
vFoo.push_back(Foo1);
vFoo.push_back(Foo2);
vFoo.push_back(Foo3);
vFoo.push_back(Foo4);


但是我觉得很丑。有任何改进的想法吗?有没有一种特殊的方法可以实现?

谢谢。

最佳答案

简短的答案:不。这就是为什么在C ++ 11中添加了对此类构造的语言支持的原因。如果您不能使用C ++ 11,那么您现有的push_back解决方案就足够了。

关于c++ - 有没有一种方法可以用一行来初始化容器? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22881235/

10-12 02:55