我在Uni Home工作中遇到这个问题。能否将std:list-char转换为c ++中的std:list-int。我希望能尽快得到您的正确答案。
答案 0 :(得分:1)
不可能像这样简单地做到这一点:
std::list<char> charList {1, 2, 3, 4};
std::list<int> int list = charList; //compiler error
但是您可以“手动”将列表重新构造为std::list<int>
(see it online):
std::list<char> charList {1, 2, 3, 4};
std::list<int> intList(charList.begin(), charList.end());
使用std::list
的迭代器构造函数时,编译器只能执行一次转换:char
-> int
。一种隐式转换非常好,因此可以正常工作。但是std::list<char>
和std::list<int>
从编译器的角度来看是完全不相关的类型,因此它不知道如何将它们转换为另一种。