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