C++ - 如何将字符*转换为标准::列表<char>
C++ - How to convert char* to std::list<char>
这是的初学者类型的问题
我只是想知道是否有一种方法可以将以null结尾的char*转换为std::list。
谢谢
char* data = ...
std::list<char> clist = convert_chars2list(data);
...
convert_chars2list(char* somedata)
{
//convert
}
这可能是最简单的方法:
#include <list>
#include <string>
int main()
{
char const* data = "Hello world";
std::list<char> l(data, data + strlen(data));
}
它利用了std::string
具有与STL容器兼容的接口这一事实。
std::list<char> convert_chars2list(char *somedata)
{
std::list<char> l;
while(*somedata != 0)
l.push_back(*somedata++);
// If you want to add a terminating NULL character
// in your list, uncomment the following statement:
// l.push_back(0);
return l;
}
std::list<char> convert_chars2list(char* somedata)
{
std::list<char> res;
while (*somedata)
res.push_back(*somedata++);
return res;
}
如果你的char*
是一个C风格的字符串,那么你可以这样做(这意味着它以