2016-03-20 2 views
0

У меня есть вопрос о списках смежности. Это пример, который я использую.Получение элементов в списке смежности

enter image description here

В коде (C++), я реализую это как вектор списков некоторого общего элемента. Итак, vector<list<element>>. В этом случае элементы A, C, D, H, K, L, N все находятся в векторе. Мой вопрос захватывает определенный элемент. Скажем, я использую цикл for для итерации через вектор adjList. Чтобы получить элемент из вектора, вы должны сказать *vector name*[i], и этот элемент получает сам. Но что он делает, когда элемент в векторе является началом списка? Скажем, мне нужен только элемент D. Чтобы получить это, я говорю adjList[3]. Будет ли это хватать только D? Или можно было бы сказать, что захватить весь список, который начинается с D? Мне не нужен весь список, я просто хочу D. Если он захватит весь список, как бы мне получить его, чтобы захватить только тот элемент, который я хочу? Может кто-нибудь помочь объяснить?

+0

Является ли это 'std :: vector' и' std :: list'? –

+0

Да, это вектор std и список. – GenericUser01

ответ

1

Как вы сами пишете, у вас есть vector<list<element>>. Это означает, что adjList[i] предоставит вам . Ваш A, C, D элементы доступны как adjList[i].front() или пространно,

list<element> l = adjList[i]; 
element D = l.front(); 

Последнее может быть полезно, если вам нужно работать с остальной частью списка тоже.

+0

Хорошо, это имеет смысл. Я не был уверен, даст ли он мне список или нет, но теперь я понимаю. Спасибо, что объяснил это мне. – GenericUser01

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