c++ - C++ 长度 int 数组以递归方式
问题描述
我想知道如何实现一个简单的函数“length”,它以递归方式返回给定数组的长度。
这对 Prolog 来说似乎很容易,但我不确定如何用 C++ 做到这一点,确切地说,如何以有效的方式划分数组。
示例可能是:
int lenght(*int arr)
{
...
}
int main()
{
int arr[5] = {1,2,3,4,5};
cout << "Length is: " <<length(arr)
}
在 Prolog 中,我会使用类似两个案例的东西,一个用于基本案例,另一个用于递归案例
length([], 0).
length([Head|Tail], Length) :- size(Tail,TailListLength), Length is TailListLength+1.
解决方案
C++ 中的数组不是递归数据结构(而是多个连续的存储槽),与列表相反,有头有尾。您可以iterator
使用其 has-next 对其进行递归长度。
由于长度是线性属性,所以没那么有趣。
二进制搜索或任何分而治之的方法会做得更好。
推荐阅读
- javascript - 如果手动单击 URL 并打开一个新选项卡,那么打开的选项卡是否可以获取对单击 URL 的窗口的引用?
- reactjs - React,动态添加文本到 ref span
- knockout.js - 如何使用 OJET 输入文本 v5.2.0 实现 textInput 绑定?
- php - 将 JSON 嵌套到“数据”中
- c# - 如何将图像 URL 转换为 StorageFile?
- c++ - 为迭代器和无符号整数重载 + 运算符
- php - 我使用哪个用户名/密码连接到 mySQL
- python - 使用 scipy.odr 和 math.erf() 的问题
- xamarin - 在发布版本中获取 MTOUCH:错误 MT5213:重复符号
- laravel - Laravel 验证,用“-”分隔 IP