C++ primer 4
习题9.28 中
编写程序将一个list容器中所有元素赋值给一个vector容器
list 存储 char *
vector 存储 string
char* ch1[]={"12","123","1234","12345","123456"};
list<char *> clist(ch1,ch1+5);
vector<string> svec;
svec.assign(clist.begin(),clist.end());
最后一句报错
: error C2664: 'void __thiscall std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_
traits<char>,class std::allocator<char> > > >::assign(const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *,const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)' :
cannot convert parameter 1 from 'class std::list<char *,class std::allocator<char *> >::iterator' to 'const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
带有一对迭代器参数的assign操作允许我们将一个容器的元素赋给另一个不同类型的容器
这个为什么出错了啊
看着答案也是这么写的