![]() |
1
71
不,除非你把你的函数变成函数
模板
(或者使用另一种容器,比如
这是一个 live example 是的。 |
![]() |
2
24
的大小
最好是使用一对迭代器:
或者,使用
|
![]() |
3
5
我在下面试了一下,结果就成功了。
输出: 1 2 3 4 5 6 7 2 4 6 8 10 12年 1 1 1 1 1 1 1 1 1 1 1 3 6 9 12 15 18 21 10 20 30 40 50 60 2 2 2 2 2 2 2 2 2 2 2 |
![]() |
4
2
绝对地,C++ 11中有一个简单的方法来编写一个函数,该函数接收已知类型的STD数组:但未知大小。 如果无法将数组大小传递给函数,则可以传递数组开始位置的内存地址以及数组结束位置的第二个地址。稍后,在函数内部,我们可以使用这两个内存地址来计算数组的大小!
控制台输出: 10,20,2,4,8 |
|
5
2
编辑
C++ 20初步包括
https://en.cppreference.com/w/cpp/container/span 原始答案
你想要的是
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#SS-views 您可以在这里找到gsl的一个开放源代码的header-only实现: https://github.com/Microsoft/GSL
与
问题在于
很酷吧? |
![]() |
6
1
这是可以做到的,但要做到干净需要几步。首先,写一个
最后,实现
(未经测试,但设计应该有效)。
然后,在你的
这样做的缺点是循环遍历数组内容的代码(在编译时)不知道数组有多大,这可能会导致优化成本。它的优点是实现不必在头中。
在显式构造
所以我实现的三个构造函数
实施
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |