2017-02-21 90 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

不客氣:)好的答案順便說一句,非常清楚。 –