是否可以在一行中创建一个std :: list,指定其值(c ++)?

Mat*_*ias 2 c++ list stdlist

我想std::list通过指定它的值来创建一个,我想在一行中创建它,例如:

std::list<std::string> myList("Cat", "Dog", "Pig"); // doesn't compile
Run Code Online (Sandbox Code Playgroud)

我找不到简单的方法std::list(我对c ++参考的例子不满意),我错过了什么吗?如果标准列表无法实现,是否有原因?那么实现它的最简单方法是什么?

提前致谢.

hmj*_*mjd 6

在C++ 11中,您可以使用初始化程序:

std::list<std::string> t { "cat", "dog" };
Run Code Online (Sandbox Code Playgroud)

在C++ 03 boost::assign::list_of中可用:

#include <boost/assign/list_of.hpp>

std::list<std::string> t = boost::assign::list_of("cat")("dog");
Run Code Online (Sandbox Code Playgroud)


eme*_*esx 6

使用Boost.Assign.

#include <boost/assign/list_of.hpp>     
std::list<std::string> test = boost::assign::list_of("abc")("def");
Run Code Online (Sandbox Code Playgroud)

使用初始化程序

std::list<std::string> test { "abc", "def" };
Run Code Online (Sandbox Code Playgroud)