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

时间:2017-10-29 17:01:34

标签: c++

我想把一个数组作为一个行向量,但是当我写:

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)

4 个答案:

答案 0 :(得分:2)

对于固定大小的数组,我甚至可能更喜欢像这样的oneliner,因为我可以乍看之下阅读它:

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";

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

答案 1 :(得分:1)

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)

答案 2 :(得分: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)

答案 3 :(得分: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是数组的大小。