c++ - 创建为双指针的两个暗淡数组的计数大小
问题描述
我在计算该数组的列数或行数时遇到问题(没关系,因为它始终是方阵),创建如下:
float **arr1 = new float*[3];
for (int i = 0; i < 3; i++){
arr1[i] = new float[3];
}
for (int i = 0; i < 3; i++){
for (int i = 0; i < 3; i++){
arr1[i][j] = i;
}
}
我尝试了很多选项,但我总是得到结果:1,例如:
sizeof(arr1[0])/sizeof(arr1[0][0]);
如果您知道解决方案,请与我分享。
解决方案
sizeof()
只会返回指针的大小。
只有一种方法可以获取数组的大小。创建一个包装原始数组并包含其大小的类/结构。
幸运的是,您不必创建这样的结构,因为从 C++11 开始,您可以使用std::array
它为您完成它并且正是您需要的。您可以按如下方式重写您的示例:
std::array<std::array<float, 3>, 3> square; // size 3x3
for(size_t i = 0; i < square.size(); ++i)
{
for(size_t j = 0; j < square[0].size(); ++j)
square[i][j] = i;
}
该方法size()
为您提供内部数组的大小。
我希望它对你有帮助。
推荐阅读
- haskell - 在 Haskell 中创建不同类型的对象列表?
- amazon-web-services - 在 AWS Amplify 上具有自定义服务器的 Next Js App 主机
- python - 有没有办法从 python 运行 GAMS 代码(或其他代数建模语言)?
- apache-spark - 分组和聚合以创建地图
- python - Flask 中的 API 开发
- php - 如何在 wordpress 中将 JQUERY POST AJAX 与类一起使用?
- c# - 生成预定义的摘要 c#
- node.js - awaitReactions 无法正常工作 discordjs
- asterisk - 如何在 Stasis 应用程序中获取已拨号码
- javascript - 如何在 URL 中获取除基本 URL 之外的值 - Javascript