2017-02-21 10 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?

Я пробовал распечатать содержимое extvec, используя обычный метод, описанный во многих ответах в StackOverflow, но я получаю много ошибок. Поэтому я решил, что это может быть вложенный вектор. Но форма отличается от других вопросов, таких как this.

+0

"Я получаю много ошибок" - мы могли бы помочь с тем, если мы знали, кем они были. Существует несколько способов печати вектора векторов, [это всего лишь несколько] (http://ideone.com/zWsYae). – WhozCraig

ответ

4

extvec aложенный вектор?

Нет такой вещи, как «вложенный вектор». Это вектор векторов.

Как распечатать содержимое 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 станд:

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

Рассмотрите возможность использования const auto & вместо автоматического, чтобы избежать копирования, если вы только хотите что-то напечатать. :) –

+0

@JulianDeclercq спасибо Отредактированный ответ. – Swapnil

+0

Добро пожаловать :) Хороший ответ кстати, очень ясный. –

 Смежные вопросы

  • Нет связанных вопросов^_^