如何调用数组的成员
How to call member of the Array?
我正在尝试为数组制作一个函数,以打印3列3行的二维数组。我不知道的是如何让程序从用户那里获得输入,并将其转换为这部分的功能:
array<array<int, columns>,rows>c[item];
cout<<"2-D Array print: "<<endl;
我一直在想办法,但我似乎哪儿也不去:(。求你了,我需要帮助。
#include <iostream>
#include <array>
#include <iomanip>
using namespace std;
const size_t rows=3;
const size_t columns=3;
void printArray(const array<array<int, columns>,rows>&);
int main(){
const size_t arraysize=9;
array<int, arraysize>c;
cout<<"Enter an array of 9 floats: "<<endl;
for (size_t i=0;i<c.size(); i++) {
cin>>c[i];
}
cout<<endl;
cout<<"Normal array print: ";
for (int item :c) {
cout<<item<<" ";
}
array<array<int, columns>,rows>c[item];
cout<<"2-D Array print: "<<endl;
}
void printArray(const array<array<int, columns>,rows>&a){
for(auto const &row:a)
{
for(auto const &element:row)
cout<<element<<" ";
cout<<endl;
}
}
(由于您已经在打印点有了数据,我将问题解释为:我不知道如何转换数组以将其传递给函数)
除了std::array是一个连续的内存存储,并且您可能会使用如下的uberack(不能保证工作):
printArray(reinterpret_cast<const array<array<int, columns>, rows>&>(c));
如果你使用一个保证数据一致性的转换循环,我会觉得安全多了:
array<array<int, columns>, rows> printArr;
for (int x = 0; x < rows; ++x) {
for (int y = 0; y < columns; ++y) {
printArr[x][y] = c[x*columns + y];
}
}
printArray(printArr);
输出:
Enter an array of 9 integers:
Normal array print: 1 2 3 4 5 6 7 8 9 2-D Array print:
1 2 3
4 5 6
7 8 9
实例
相关文章:
- 继承:构造函数,初始化C++11中基类的类C数组成员
- 为什么静态数组成员变量在调用对象的实例后不显示任何内容?
- C++ - 移动具有固定大小的 c 样式数组成员的类的构造函数
- C++内联数组成员统一初始化
- 有没有办法把字符串数组成员放在".structurevariable"前面?
- 将初始化列表传递给 C++ 中的数组成员
- 具有灵活数组成员的结构的大小
- 初始化固定的 C 数组成员结构
- 带有布尔数组成员的 C++ 结构.如何在主代码中使用
- 我如何通过构造函数大小私人std ::数组成员
- 通过两个下标访问数组成员
- size_t结构非数组成员崩溃的强制转换
- 删除数组成员的更好方法是什么?
- 从C 到C#调用INT []显示随机大数字,而不是原始数组成员
- 在C 中的数组初始化期间使用数组成员
- 友元函数将内存分配给数组成员是否有任何限制?
- 从结构传递数组成员会导致访问读取冲突
- 为什么 const char 数组成员的初始化在构造函数初始值设定项中不兼容
- 如何在 lambda 中访问数组成员
- 将整数值分配为variadic模板列表到静态const std ::数组成员