【发布时间】:2017-05-12 01:50:17
【问题描述】:
我有向量a的向量,我想打印出第一个向量的内容。
a = [ 1 5 3 ; 11 17 14 ]
知道它的大小/尺寸,我可以使用以下方法:
for ( int k = 0; k <= a[0].size(); k++)
cout << a[0][k] << endl;
我想要的输出是:
1 5 3
但是,在另一个向量在执行期间改变其大小的示例中,我尝试使用以下内容:
for ( auto k : a[0])
cout << a[0][k] << endl;
但输出如下:
5 0
如何在不知道向量维度的情况下使用auto 关键字获取第一个向量的元素?
【问题讨论】:
-
我相信当您使用
for ( auto k : a[0] )时,k被分配给向量中的第一个元素,a[0],即 1。因此,a[0][k] 返回a[0][1] 为 5。向前看,a[0][5] 为 0(超出范围),a[0][3] 也为 0(超出范围)。