当前位置:  开发笔记 > 编程语言 > 正文

c ++和数组中的通用交换函数

如何解决《c++和数组中的通用交换函数》经验,为你挑选了1个好方法。



1> Some program..:

首先,如果您将数组作为参数传递,则类型T将被推断为数组类型,这会导致问题,因为您无法分配仅复制它们的数组.

然后你误以为你只能切换指针,这是无法做到的.如果你有两个指针,交换它们将工作正常,但你不能只是切换这样的数组.并且在调用中直接使用address-of运算符也不可能使用指向数组的指针,因为这将尝试将引用绑定到不可能的临时值.

使用您的函数"交换数组" 的唯一解决方案就像

char array1[...] = { ... };
char array2[...] = { ... };

char* pointer_to_array1 = array1;
char* pointer_to_array2 = array2;

swap(pointer_to_array1, pointer_to_array2);

// After call, pointer_to_array1 will point to the first element of array2
// and pointer_to_array2 will point to the first element of array1

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有