type
status
date
slug
summary
tags
category
icon
password
前言
在研究数组排序的过程中,发现了个很基础的问题–如何获取数组长度(成员数)。
似乎C++并没有提供获取数组长度的方法,网上搜索得知sizeof可以计算变量大小,可以通过获取数组大小/成员大小的办法得到数组长度。
当我将这个计算数组长度的方法封装起来时,发现事情并不简单。
引用类型
编译时说明了原因所在。
个人理解大概意思就是把数组传入函数,会变成引用类型(指针),即sizeof取得的是指针的size。
详情参考:点击查看
那就操蛋了,程序不封装好,每次想获取长度都tm要写一次sizeof的话,那就太傻逼了。
网上搜索了一下资料,似乎没有办法(不含复制)直接取出指针指向的数组。
模版类型
在做数组排序时,需要交换变量,搜索资料的时候发现了一种操作。
于是乎,尝试抄袭一下,正确获取到了数组长度。
原来只打算做int型数组排序的,结果,套用了这个template之后,全类型数值排序都实现了。
参考资料:点击查看
后话
如果想要简单获取length,也许该用vector。
以下为本文实现的排序代码。