![]() |
1
7
无论数组元素类型如何,这两种情况都适用:
|
![]() |
2
5
在C++中只使用向量类。 如果出于某种原因不能实现,那么就需要宏实现。 从WiNt.h中查看一组宏的答案,它在C中工作,甚至在C++中更安全: |
![]() |
3
5
使用stdlib.h的countof宏
|
![]() |
4
2
看到C代码是很常见的
通常你可以找到至少一个永远不会
在我编写的代码中,任何涉及编译器大小数组的操作都是用类似
这个
|
![]() |
5
1
对于C,我建议realloc动态引入新变量。如果你在做一些静态的事情,我建议你遵守定义。我不确定我是否会称之为最佳实践,但今天,我就是这样实践的。 C++的最佳实践是使用STL::vector。 A reference here |
![]() |
6
1
我几乎总是使用包装类(mfc carray、stl vector等),除非有特定的原因。没有太多的开销,您得到了大量的调试检查,您可以动态地调整大小,获取大小很容易,等等。 |
![]() |
7
1
对于C++,使用STD::向量使用C数组没有真正意义。std::vector的性能(几乎)与C数组相同,它将:
这甚至没有考虑与std::vector关联的通用算法。 现在,使用C你至少可以用两种方式写得更好。首先,将define替换为真常量变量:
使用一个真正的变量将为您提供更多的类型安全性,并且不会污染全局范围。为了最小化依赖关系,您甚至可以在头中声明变量,并在源中定义它们:
这样,您就可以在一个源中更改数组的大小,而不需要重新编译所有使用它的源。缺点是maxplayers在编译时已不为人所知(但这真的是缺点吗?) 请注意,第二种类型的数组不能动态增长。SIZEOF是(至少在C++中)在编译时评估的。对于增长的数组,MalCal/RealOc/Field是C的方式,STD::vector(或者任何其他的通用STL容器)是C++中的方式。 |
![]() |
8
1
确保还阅读 this question's answers -许多解决阵列大小问题的方法 是 便携式。
我特别喜欢
|
![]() |
9
0
如果你在C++中使用T[]数组,那么到目前为止,答案还包括: 使用模板参数推导来推断数组大小。更安全的是:
你的
|
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |