【发布时间】:2017-09-11 22:54:54
【问题描述】:
如果这是一个容易解决的问题,请原谅我,我是 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 加在一起,以便它们输出“apple”、“orange”、“pear”、“banana”、“mango”、“pineapple”。但是,当我尝试上述方法时,会出现如下错误:
不存在合适的构造函数将“const char [24]”转换为“std::list>”
感谢您的帮助。
【问题讨论】:
-
从合并行中移除 Test::
-
从列表声明的末尾删除
[]s。他们告诉 C++ 你希望你的变量是std::list<std::string>的数组,这不是你想要的。 -
@Meccano 我不同意你的观点,list1 在类Test,所以你必须用
Test::list1声明
标签: c++ list c++11 merge concatenation