2016-11-29 6 views
0

Итак, я узнал о библиотеке и графиках, и поэтому я узнал, что графики могут быть представлены в виде вектора списков, который может быть таким, где 1 2 3 4 5 6 вершины, и из Vertice 1 я мог бы пойти в номер 2, от 3 до 6 и т.д.Цитирование через вектор списков

1 2 3 4 5 6 
2 6 1 2 
     2 

Но я уже сохранили эти значения в списке вектора, как я мог цикл через него получить график? Мой векторный список называется _verticesEdges.

Мол, чтобы получить выходной сигнал, как это:

Vertice 1: 2

Vertice 2:

Vertice 3: 6

Vertice 4: 1 2

Vertice 5:

Вертикаль 6: 2

Цените свою помощь!

+1

Обратите внимание, что [ 'СТЛ! = Std'] (http://stackoverflow.com/questions/5205491/whats-the-difference-between-stl-and-c-standard-library). Вам нужно будет показать код для получения справки. Пожалуйста, предоставьте [mcve]. – user463035818

+0

Я бы искал, как итерации через вектор. Кроме того, как сказал @ tobi303, вам нужно показать код здесь, чтобы получить справку. –

ответ

0

Что-то вроде этого

std::vector<std::list<int>> vecOfLists; 
// fill vecOfLists; 
for (size_t i = 0; i < vecOfLists.size(); ++i) { 
    std::cout << "Vertice " << i + 1 << ": "; 
    for (int num : vecOfLists[i]) { 
     std::cout << num << " "; 
    } 
    std::cout << std::endl; 
} 

Я использую обычный for для переборе списков, так как требуется индекс, и использования range-based for для перебора списка, так как это лучше и современным способом перебора всего контейнера, если вам не нужны индексы.

1
Assuming you have stored from index 1 to n (that means size of 0th index of your vector is zero), where n is number of vertices, 

for (int i = 1; i <= n; i++) 
{ 
    cout << "Vertex " << i << ": "; 

    for (int j=0; j< _verticesEdges[i].size(); j++) 
    cout << _verticesEdges[i][j] << " "; 
    cout << "\n"; 
} 
Смежные вопросы