gpt4 book ai didi

c++ - std::list 列表类型为 (char * data, int length)

转载 作者:搜寻专家 更新时间:2023-10-31 00:05:55 29 4
gpt4 key购买 nike

我有一些

std::list<char> list_type

现在我必须以 (char *data, int length) 的形式提供列表的内容。有没有方便的方法将列表内容显示为指针和长度?是否<vector>有这样的界面吗?

提前致谢。

最佳答案

你可以用 vector 来做,因为它的数据是连续存储的:

std::vector<char> vec;

char* data = &vec[0];
int length = static_cast<int>(vec.size());

对于列表,您必须将数据复制到数组中。幸运的是,这也相当容易:

std::list<char> list:
int length = static_cast<int>(list.size());
char* data = new char[length]; // create the output array
std::copy(list.begin(), list.end(), data); // copy the contents of the list to the output array

当然,您会得到一个动态分配的数组,您必须再次释放它。

关于c++ - std::list<char> 列表类型为 (char * data, int length),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1149919/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com