Wie kann ich mich über den Schwanz eines Vektors erhalten:Erhalten Schwanz eines Vektors?
std::vector<int> Example {1,2,3,4,5};
//head = [1]
//tail = [2,3,4,5]
Python:
head = Array[0]
tail = Array[1:]
Haskell
myRecursiveFunction :: [Int] -> [Int]
myRecursiveFunction (x : xs) = x + 1 : myRecursiveFunction xs
Ich bin bewusst, dass ich einen iterativen STL-Algorithmus verwenden könnte, wie akkumulieren:
std::vector<int> Example {1,2,3,4,5};
std::accumulate(Example.begin() + 1, Example.end(), 0);
Aber das scheint ziemlich ausführlich, gibt es einfachere Lösungen? Es macht mir nichts aus, wenn die Lösung den Tail kopiert oder anzeigt, ich suche nur nach einer Methode, um einfach auf den Tail eines Vektors zuzugreifen, ohne Iteratoren zu verwenden.
Definieren Sie "den Schwanz eines Vektors erhalten". "[1:]" ist bedeutungslos, in C++. 'std :: accumulate' extrahiert keinen Teil eines Vektors, sondern führt eine Operation im Vektorbereich durch. –
Wie viele verschiedene Interpretationen gibt es vom "Schwanz eines Vektors"? –
@BabraCunningham 1. ein Blick auf den Schwanz, 2. eine Kopie des Schwanzes –