2017-02-21 71 views
0

以下是有疑问的片段:如何在C++中打印出嵌套向量的内容?

typedef std::vector<unsigned char> QInput; // defined in an external library 

std::vector<QInput> extvec; // defined in a separate function 

问题1:extvec嵌套向量?

问题2:如何打印出extvec的内容?

我已经尝试使用StackOverflow许多答案中描述的传统方法打印出extvec的内容,但我收到了很多错误。所以我决定这可能是一个嵌套的向量。但表格看起来不同于其他问题,如this

+0

“我得到了很多错误的” - 我们也许可以与如果我们帮助知道他们是什么。有几种方法可以打印矢量矢量,[只有这几个](http://ideone.com/zWsYae)。 – WhozCraig

回答

4

extvec嵌套向量?

有没有这样的事情作为一个“嵌套矢量”。它是矢量矢量。

如何打印出extvec的内容?

通过遍历其中的向量进行迭代。

5

是extvec嵌套向量?
是的,你可以想像这种方式,但不是官方任期。

如何打印出extvec的内容?

在C++ 98:

for (std::vector<QInput>::iterator it = extvec.begin(); it != extvec.end(); ++it) 
    { 
     for (vector<unsigned char>::iterator it1 = (*it).begin(); it1 != (*it).end(); ++it1) 
     { 
      cout << *it1 << endl; 
     } 
    } 

在C++ 11的std:

for (const auto& v : extvec) 
{ 
    for (auto i : v) 
    { 
     cout << i << endl; 
    } 
} 
+1

考虑使用常量自动&而不是只是自动,以避免副本,如果你只想打印一些东西。 :) –

+0

@ JulianDeclercq谢谢编辑答案。 – Swapnil

+0

不客气:)好的答案顺便说一句,非常清楚。 –