按行、列和深度顺序打印多维矢量
printing multidimensional vector in rows , cols and depth order
我正在尝试按行x列x深度的顺序打印矢量的3D阵列,但结果有所不同。例如,我想打印3x2x5矢量数组,我的代码输出为:
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
输出是这样的:2(行)x5(列)x3,在我看来是错误的
这是我的密码。。。
#include <iostream>
#include <string>
#include <vector>
const int N = 3;
const int M = 2;
const int Q = 5;
typedef std::vector<double> dim1;
typedef std::vector<dim1> array2D;
typedef std::vector<array2D> array3D;
array2D A(N, dim1(M));
array2D B(N, dim1(M));
array3D C(N, array2D(M, dim1(Q)));
int main() {
for (int ix = 0; ix < N; ++ix) {
for (int iy = 0; iy < M; ++iy) {
for (int iq = 0; iq < Q; ++iq) {
C[ix][iy][iq] = 1.0;
}
}
}
for (int ix = 0; ix < N; ++ix) {
for (int iy = 0; iy < M; ++iy) {
for (int iq = 0; iq < Q; ++iq) {
std::cout << C[ix][iy][iq];
}
std::cout << std::endl;
}
std::cout << std::endl;
}
return 0;
}
您几乎可以工作了。我看到的代码中唯一缺少的是一行中数字之间的空格。
std::cout << C[ix][iy][iq] << " ";
^^^^^^
这将在行的最后一个数字之后添加一个空格。如果这是不可接受的,你将需要一点额外的逻辑:
for (int iq = 0; iq < Q; ++iq) {
std::cout << C[ix][iy][iq];
if ( iq < Q-1 ) {
std::cout << " ";
}
}
相关文章:
- 如何在C++中递归地按相反顺序打印集合
- 首先按给定顺序打印所有数字,然后使用 Array 打印所有字符和其他符号
- 按字母顺序打印存储在字符数组中的信息
- 视觉C++未按所需顺序打印
- C++使用相反的顺序打印带有逗号的列表
- C/C++ - 用于按顺序打印数字的 sem_t 类型的单个信号量
- 对象指针打印结果以相反的顺序进行
- 链表缺少节点并在打印时颠倒顺序
- 如何以相反顺序C 打印整数的单个数字
- 我不知道如何创建一个以数字/字母顺序打印出我的整数或字符串的程序
- 在 C Linux 中使用三个线程使用信号量同步按顺序打印 3 4 5 50 次
- 以相反的顺序打印链表的后半部分
- 我如何附加双链接以指向正确的节点,以相反的顺序打印
- 为什么在打印东西时没有保留顺序,先用cerr,然后用cout
- 按字母顺序打印结构输入C
- 按顺序打印时遇到问题,二叉树的后顺序等
- 打印所有可能的组合,包括重复,顺序也很重要
- 按特定顺序打印队列
- C++ 中的打印顺序
- 为什么这段代码的打印顺序不像我预期的那样工作?