合并两个字符串列表
问题描述:
请原谅我,如果这是一个容易解决的问题,我是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;
}
我要添加列表1和List2在一起,使它们输出“苹果”,“橙”,“梨”,“香蕉”,“芒果“, “菠萝”。然而,当我尝试上面的方法我得到这样一个错误:
没有合适的构造存在,从转换“为const char [24]”到“标准::列表>”
感谢任何帮助。
答
#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,就像上面那样。
从合并行中删除Test :: – Meccano
从列表声明的末尾删除'[]'s。他们告诉C++你希望你的变量是一个'std :: list <:string>'的数组,这不是你想要的。 –
@Meccano我不同意你的看法,list1在类Test中,所以你必须用'Test :: list1'声明 – 21koizyd