Mam problem z iteracją w odwrotnej kolejności niż mapa w gcc C++. Kiedy używam odwrotnego iteratora, wydaje się, że nie mogę cokolwiek przydzielić - kompilator narzeka. Pracuję nad tym z niezręcznym kodem za pomocą iteratora, ale nie jest on zbyt elegancki. jakieś pomysły?Jak iterować w odwrotnej kolejności na mapie w C++
17
A
Odpowiedz
36
Oto przykład z iteracji tyłu przez std::map
:
#include <iostream>
#include <map>
#include <string>
int main() {
std::map<std::string, std::string> m;
m["a"] = "1";
m["b"] = "2";
m["c"] = "3";
for (auto iter = m.rbegin(); iter != m.rend(); ++iter) {
std::cout << iter->first << ": " << iter->second << std::endl;
}
}
Jeśli pre-C, to po prostu trzeba ++ 11 do przeliterować auto
, który jest:
std::map<std::string, std::string>::reverse_iterator
Należy pamiętać, że w przypadku stosowania doładowania można użyć pętli for opartej na odległości z adapterem odwrotnym:
#include <boost/range/adaptor/reversed.hpp>
for (auto& iter : boost::adaptors::reverse(m)) {
std::cout << iter.first << ": " << iter.second << std::endl;
}
Powiązane problemy
- 1. TemplateBeginRepeat w odwrotnej kolejności
- 2. os.walk() w odwrotnej kolejności?
- 3. Sortuj listę w odwrotnej kolejności
- 4. Android - FirebaseListAdapter w odwrotnej kolejności?
- 5. Sortowanie NSArray w odwrotnej kolejności
- 6. Jak sortować IntStream w odwrotnej kolejności
- 7. Jak przejść przez C# LinkedList w odwrotnej kolejności
- 8. odwrotnej kolejności zestaw elementów
- 9. strpos funkcja w odwrotnej kolejności w php
- 10. Czy zmienne stosu C są przechowywane w odwrotnej kolejności?
- 11. Flash - Odtwórz film w odwrotnej kolejności?
- 12. Praca z seriami w odwrotnej kolejności (najnowsze)
- 13. usort zwraca tablicę w odwrotnej kolejności
- 14. Dlaczego konstruktor jest wywoływany w odwrotnej kolejności?
- 15. Jak przekonwertować listę w odwrotnej kolejności w arkuszu Excela
- 16. Jak iterować przez Dict w kolejności losowej w Pythonie?
- 17. Możliwe przemieszczenie dzieci węzła Bazy Firebase w odwrotnej kolejności?
- 18. Przesuwanie/popping stack w odwrotnej kolejności w automatach ze stosem
- 19. funkcja zwraca listę w odwrotnej kolejności w OCaml
- 20. Sortowanie tablicy łańcuchów znaków w odwrotnej kolejności alfabetycznej w Javie
- 21. Drukowanie elementów w dowolnej kolekcji w odwrotnej kolejności?
- 22. Naturalne sortowanie tablicy PHP w odwrotnej kolejności i nieprzechowywanie kluczy
- 23. Czy można uruchomić sieć neuronową w odwrotnej kolejności?
- 24. Dlaczego .Net Native kompiluje pętlę w odwrotnej kolejności?
- 25. Dlaczego libstdC++ przechowuje elementy std :: tuple w odwrotnej kolejności?
- 26. Przekształć etykietę w odwrotnej kolejności Wykres radialny d3
- 27. C#: Czy istnieje korzyść w dysponowaniu zasobami w odwrotnej kolejności ich alokacji?
- 28. Konwertuj lub formatuj ciąg znaków do zmiennych (takich jak format(), ale w odwrotnej kolejności) w Pythonie
- 29. Jak iterować mapę w języku golang w celu?
- 30. W C++, jak iteracyjne w odwrotnej tablicę używając for_each?
To, czego nam nie powiedziałeś, to to, co chcesz robić. – tpdi
Wygląda na to, że używasz odwrotnego iteratora, ale wciąż nazywasz początek i koniec zamiast rbegin i rend. Rozwiązanie GMana może być tym, czego szukasz. Ale umieszczenie kodu pomoże nam pomóc. – Smashery
Dzięki - Myślałem, że próbowałem rbegin/rend, ale musiałem się jakoś zaplątać. –