Wie durchlaufe ich aufeinanderfolgende Paare in einem AWL-Container mit bereichsbasierter Schleifensyntax?

Wie erstelle ich eine benutzerdefinierte Klasse, um aufeinanderfolgende Elementpaare in einem AWL-Container mit einer bereichsbasierten Schleife zu durchlaufen?

Dies ist die Syntax und Ausgabe, die ich möchte:

std::list<int> number_list;
number_list.push_back(1);
number_list.push_back(2);
number_list.push_back(3);

auto paired_list = Paired(number_list);
for (const auto & pair : paired_list) {
  std::printf("The pair is (%d, %d)\n", *(pair[0]), *(pair[1]));
  // or
  //std::printf("The pair is (%d, %d)\n", *(pair.first), *(pair.second));
}
// output:
// The pair is (1, 2)
// The pair is (2, 3)

Ich weiß, dass diese (und mehr) benötigt werden, aber ich kann es nicht herausfinden:

template <class T>
class Paired {
  ???
  class iterator {
    ???
  }
  iterator begin() {
    ...
  }
  iterator end() {
    ...
  }
}

Mach dir keine Sorgenconst Modifikatoren.

Kein Schub.

Ändern oder kopieren Sie keine Objekte im Container.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage