合并两个字符串列表

时间:2017-04-16 00:33:30

标签: c++ list c++11 merge concatenation

请原谅我,如果这是一个容易解决的问题,我是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;

感谢您的帮助。

1 个答案:

答案 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,如上所述。