是否可以<char> <int> 在 C++ 中将 std::list 转换为 std::list



我在我的Uni家庭工作中有一个问题。cod std:list-char被转换为c 中的std:list-int。我希望尽快从您那里得到正确的答案。

不可能以微不足道的方式进行操作,因此:

std::list<char> charList {1, 2, 3, 4};
std::list<int> int list = charList; //compiler error

但是您可以将列表重建为std::list<int>"手动"(在线查看(:

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>是完全无关的类型,因此它不知道如何将一个转换为另一个。

最新更新