如何将数组打印为矢量形式

how I can print an array as a vector form

本文关键字:打印 数组      更新时间:2023-10-16

我想将数组作为行向量,但是当我写:

int main() {
    int B[3]={0};
    for (int w = 0; w <2; w++) {
        cout <<"B="<<" "<< B[w] << " ";
    }
    cout << endl;
    return 0;
}

输出B=0 B=0

但我希望输出是这样的:

B=(0 0)

对于只有固定大小的数组,我什至可能更喜欢这样的单行代码,因为我可以一眼看懂它:

cout << "B=(" << B[0] << " " << B[1] << " " << B[2] << ")n";

对于具有动态或大量元素B的容器n,您可能应该执行以下操作:

cout << "B=(";
if(n > 0)
{
    cout << B[0];
    // note the iteration should start at 1, because we've already printed B[0]!
    for(int i=1; i < n; i++)
        cout << ", " << B[i]; //I've added a comma here, so you get output like B=(0, 1, 2)
}
cout << ")n";

这样做的好处是,无论元素的数量如何,您最终都不会得到尾随逗号或不需要的空格。无论如何,我建议制作一个通用(模板)函数来打印数组/std::vector 内容 - 它对于调试目的非常有用!

int main() {
  int B[3] = { 0 };
  cout << "B=(";
  for (int w = 0; w < 3; w++) {
    cout << B[w];
    if (w < 2) cout << " ";
  }
  cout << ")" << endl;
  return 0;
}

输出现在应为: B=(0 0 0)

最简单的方法是:-

#include<iostream>
using namespace std;
int main()
{
int B[3]={0};
cout << "B=(";
for (int w = 0; w < 3; w++) 
  {
    cout << B[w] << " ";
  }
cout << ")" << endl;
return 0;
}

输出将为 B= (0 0 0 )

如果需要,可以尝试这个:

#include <iostream>
using namespace std;
int main() {
    int B[3]={0};
    cout << "B=(";
    for (int w = 0; w <2; w++) {
        cout << B[w];
        if(w != 1) cout << " ";
    }
    cout << ")" << endl;
    cout << endl;
    return 0;
}

输出为:

B=(0 0)

该行if(w != 1)检查是否已到达数组的最后一个元素。在这种情况下,最后一个索引是 1,但通常 if 语句应该是: if(w != n-1)其中n是数组的大小。