我想boost::shared_ptr<std::vector<std::string> > vec用构造函数初始化列表初始化一个boost::shared_ptr<std::list<std::string> > list?
可能吗?
我试过这个:
Test.hpp
class Test
{
public:
Test(boost::shared_ptr<std::list<std::string> > list);
private:
boost::shared_ptr<std::vector<std::string> > vec;
};
Run Code Online (Sandbox Code Playgroud)
TEST.CPP
Test::Test(boost::shared_ptr<std::list<std::string> > list) : vec(list->begin(), list->end())
{
}
Run Code Online (Sandbox Code Playgroud)
部分错误消息:
Test.cpp: In constructor ‘Test::Test(boost::shared_ptr<std::list<std::basic_string<char> > >)’:
Test.cpp:6:85: error: no matching function for call to ‘boost::shared_ptr<std::vector<std::basic_string<char> > >::shared_ptr(std::list<std::basic_string<char> >::iterator, std::list<std::basic_string<char> >::iterator)’
Run Code Online (Sandbox Code Playgroud) 我有一个包含n个元素的列表,但我想将其转换为包含n列表的列表,并且每个列表都包含一个元素.
a = ['1','2','3','4']
b = [['1'],['2'],['3'],['4']]
Run Code Online (Sandbox Code Playgroud)
我如何从a到b?