请原谅我,如果这是一个容易解决的问题,我是C ++的新手。
我有一个班级和一个主要方法:
class Test
{
public:
static std::list<std::string> list1[];
};
std::list<std::string> Test::list1[] = { "apple", "orange", "pear" };
int main()
{
std::list<std::string> list2[] = { "banana", "mango", "pineapple" };
Test::list1.merge(list2);
std::cout << list1 << endl;
return 0;
}
我想将list1和list2一起添加,以便输出&#34; apple&#34;,&#34; orange&#34;,&#34; pear&#34;,&#34; banana&#34; ,&#34;芒果&#34;,&#34;菠萝&#34;。但是,当我尝试上面的方法时,我得到一个错误:
没有合适的构造函数来转换为&#34; const char [24]&#34;到&#34; std :: list&gt;&#34;
感谢您的帮助。
答案 0 :(得分:0)
#include <iostream>
#include <list>
#include <string>
class Test
{
public:
static std::list<std::string> list1;
};
std::list<std::string> Test::list1 = { "apple", "orange", "pear" };
int main()
{
std::list<std::string> list2 = { "banana", "mango", "pineapple" };
Test::list1.merge(list2);
for(const auto& itr : Test::list1)
std::cout << itr << std::endl;
return 0;
}
列表不使用运算符[]
。如果你想要显示列表,你必须使用itr,如上所述。