gpt4 book ai didi

c++ - 将一种类型的数组转换为另一种类型

转载 作者:太空宇宙 更新时间:2023-11-04 05:51:36 24 4
gpt4 key购买 nike

基本上我有一个 double 数组。我想将此数组传递给函数 (ProcessData),该函数会将它们视为短整型。是否创建一个短指针并将其指向数组,然后将此指针传递给函数 ok(代码 1)?

这实际上与创建短数组、遍历每个元素并将 double 组的每个元素转换为短数组然后传递短数组指针(代码 2)相同吗?谢谢

//code 1
//.....
short* shortPtr = (short*)doubleArr;
ProcessData(shortPtr);

..

//code 2
//...
short shortArr [ARRSIZE];
int i;
for (i = 0; i < ARRSIZE; i++)
{
shortArr[i] = (short)doubleArr[i];
}
ProcessData(shortArr);

最佳答案

正如各种评论所说,您不能只是转换。但是,如果您使用迭代器,您或多或少可以获得相同的效果:

void do_something_with_short(short i) {
/* whatever */
}

template <class Iter>
void do_something(Iter first, Iter last) {
while (first != last)
do_something_with_short(*first++);
}

您可以使用迭代器将该模板函数调用到任何算术类型的数组中(事实上,任何可以隐式转换为 short 的类型,或者,如果您在调用点添加一个强制转换do_something_with_short,需要强制转换的类型):

double data[10]; // needs to be initialized, of course
do_something(std::begin(data), std::end(data));

关于c++ - 将一种类型的数组转换为另一种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40072646/

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