Мой вектор хранит номера вершин определенного графа в порядке возрастания.Я хочу добавить эти числа в очередь, чтобы потом запустить BFS в коде, но я не знаю, как это сделать быстро и качественно.Я хочу, чтобы решение было понятным для всех, и то, с чем я пришел, на мой взгляд, неясно.Отказ от ответственности - я использую статические приведения, потому что я ненавижу видеть предупреждения, когда я работаю с Qt.Вот что сделал:
Использование случайного цикла for для итерации в обратном порядке по вектору, начинающемуся с size-1
и заканчивающемуся, когда i
равно -1
.Поскольку я использую -1
, как правило, мне нужно привести все к int
, что делает код ужасным.
vector<unsigned> v;
v.pushback(2);
v.pushback(3);
v.pushback(5);
queue<unsigned> q;
for(int i = static_cast<int>(v.size()-1); i>=0; i--)
q.push(v[static_cast<unsigned>(i)];
Может кто-нибудь сказать мне, как это делают профессионалы?Не могу найти что-то вроде функции «копировать в обратном порядке», которая может начинаться с элемента .end()-1
и копировать все элементы, включая .begin()
one?